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

Откуда:
Сообщений: 187
Добрый день всем!

Задача: пользователь, НЕ имеющий НИКАКИХ разрешений на таблицу должен запускать процедуру, удаляющую определённые строки из данной таблицы.

Правильно ли я понимаю, что в этом случае при создании процедуры необходимо ОБЯЗАТЕЛЬНО указать какого-либо пользователя в Execute AS, который имеет право на удаление данных столбцов, например:

CREATE PROCEDURE Pr1 WITH EXECUTE AS USER = 'dbo'
AS
DELETE FROM sometable WHERE Col1 = 0
GO

...а аналогичный пример БЕЗ EXECUTE AS USER = 'dbo' работать не будет?

CREATE PROCEDURE Pr1
AS
DELETE FROM sometable WHERE Col1 = 0
GO


Заранее всем спасибо!
5 дек 12, 13:04    [13580682]     Ответить | Цитировать Сообщить модератору
 Re: Execute AS  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Неправильно.
Нужно использовать цепочку владения - создать процедуру в схеме dbo и дать пользователю разрешение на ее выполнение.
5 дек 12, 13:12    [13580772]     Ответить | Цитировать Сообщить модератору
 Re: Execute AS  [new]
Михаил Фв
Member

Откуда:
Сообщений: 187
P.S. Вариантов действий только два: либо С EXECUTE AS USER либо БЕЗ.
5 дек 12, 13:31    [13581041]     Ответить | Цитировать Сообщить модератору
 Re: Execute AS  [new]
Михаил Фв
Member

Откуда:
Сообщений: 187
P.P.S. Таблица из условия задачи находится в отдельной схеме (например, TestSchema, а не в dbo) !
5 дек 12, 15:59    [13582373]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить