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

Откуда:
Сообщений: 6
Друзья, доброго времени суток!
Помогите разобраться, читаю msdn, не понимаю :(
если у хранимки указано
execute as CALLER - то действия внутри нее выполняются от имени (в контексте) вызывающего юзера, более-менее понятно;
execute as SELF - выполняется от имени создателя, как выяснить, кто создал? где хранится эта инфа?
execute as OWNER - выполняется от имени владельца, как узнать, кто владелец?

и еще, я попробовал поэкспериментировать:
1. завел логин и юзера DAVE, включил его в роли db_datareader, db_datawriter, db_ddladmin
2. зашел под юзером DAVE, создал таблицу dbo.T1, вставил пару строк, выполнил select из T1 - все ок
3. под именем DAVE создал хранимку sp1, делающую select из T1, и опцией WITH EXECUTE AS CALLER (хоть она вроде по умолчанию такая и есть, но все же...) затем под sa разрешил ему запуск этой хранимки - все ОК, работает.
4. наконец завел юзера ALICE, ни в какие роли не включал, select из T1 она делать не может
5. но я разрешил ей запуск хранимки sp1 - и она работает! вот ПОЧЕМУ??
ведь select внутри хранимки должен выполняться от имени ALICE (as caller), а у нее нет прав на select.
если бы был AS SELF или AS OWNER, то как я понимаю, он бы выполнялся от имени DAVE и все ок, но почему он успешно выполняется от имени ALICE?
Похоже я в корне не понимаю механизм назначения прав, объясните, плиз, на пальцах или посоветуйте почитать что-нибудь доступное.
спасибо)
28 авг 12, 11:01    [13074217]     Ответить | Цитировать Сообщить модератору
 Re: Execute as. Разрешения на запуск хранимок и доступ к таблице. Владельцы и создатели.  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Цепочки владения
28 авг 12, 11:24    [13074382]     Ответить | Цитировать Сообщить модератору
 Re: Execute as. Разрешения на запуск хранимок и доступ к таблице. Владельцы и создатели.  [new]
design21
Member

Откуда: Minsk
Сообщений: 59
Почитай цикл статей SQL Server security. Две стороны одного EXECUTE AS.
вот ссылка: http://www.gotdotnet.ru/blogs/smarty/9915/

sp1 и T1 имеют одного владельца, тут вступают в силу цепочки владения.
28 авг 12, 11:25    [13074387]     Ответить | Цитировать Сообщить модератору
 Re: Execute as. Разрешения на запуск хранимок и доступ к таблице. Владельцы и создатели.  [new]
deniskin
Member

Откуда:
Сообщений: 6
о! спасибо, то, что надо, ушел читать))
28 авг 12, 11:32    [13074455]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить