Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Почему не запускается процедура в другой БД  [new]
nibbles
Member

Откуда: Moscow
Сообщений: 2378
В БД DB01 есть процедура, которая в свою очередь запускает процедуру в БД DB02 на этом же сервере:
alter proc dbo.sp_MyProc(@DateBegin datetime,@DateEnd datetime) as
begin
     EXEC [DB02].[dbo].[sp_RPTKozSumInOrders] @DateBegin, @DateEnd
end
Создатель процедуры имеет админские права на обе базы данных (и "под ним" эта процедура работает). Процедура [DB02].[dbo].[sp_RPTKozSumInOrders] выполняет и возвращает SELECT, динамических запросов в ней нет.
У пользователя, у которго есть права на execute DB01.dbo.sp_MyProc, при запуске этой процедуры появляется ошибка:

"EXECUTE permission denied on object 'sp_RPTKozSumInOrders', database 'DB02', owner 'dbo'."

Проблема устраняется только после предоставления пользователю прав на запуск процедуры [DB02].[dbo].[sp_RPTKozSumInOrders], что не есть хорошо
8 фев 05, 19:54    [1309019]     Ответить | Цитировать Сообщить модератору
 Re: Почему не запускается процедура в другой БД  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Все правильно. Так оно и работает. Для обхода этого читаем про ownership chains в БОЛ и в форуме. Были примеры. Не забываем про гостя.
8 фев 05, 20:07    [1309035]     Ответить | Цитировать Сообщить модератору
 Re: Почему не запускается процедура в другой БД  [new]
Robert Tappan Moris
Member

Откуда: 3-я планета от солнца
Сообщений: 525
Как ownership chains могут сдесь использоваться, ведь:
...
Ownership chains only apply to SELECT, INSERT, UPDATE, and DELETE statements.
...
(офицальный мануал)

то есть :
...
Ownership chains применяются только на инструкции SELECT, INSERT, UPDATE и DELETE.
...

Я здесь случай другой здесь наличествует вложенность процедур, т.е. используется EXEC, к коротой ownership chain применить нельзя.
8 фев 05, 21:11    [1309131]     Ответить | Цитировать Сообщить модератору
 Re: Почему не запускается процедура в другой БД  [new]
Glory
Member

Откуда:
Сообщений: 104760
С SP3 появились cross-database ownership chains в виде соответсвущей галочки в свойствах базы. И топика в BOL
8 фев 05, 21:14    [1309135]     Ответить | Цитировать Сообщить модератору
 Re: Почему не запускается процедура в другой БД  [new]
Crimean
Member

Откуда:
Сообщений: 13148
2 Robert Tappan Moris

http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp
8 фев 05, 21:29    [1309161]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить