Какие разрешения пользователя базы данных необходимы? - PullRequest
2 голосов
/ 05 января 2010

К вашему сведению: SQL Server 2005

У меня есть учетная запись пользователя базы данных (user_web), которая может подключаться и выполнять запросы и хранимые процедуры в моей базе данных. В частности, я дал пользователю роли db_datareader и db_datawriter, а также предоставил им разрешение на выполнение определенных хранимых процедур, которые он должен выполнять.

В одной из хранимых процедур мне нужно отключить триггер, а затем повторно включить его после выполнения определенных изменений. Когда я пытаюсь запустить эту хранимую процедуру с пользователем, я получаю следующую ошибку:

Cannot find the object "TableName" because it does not exist or you do not have permissions.

TableName - таблица, в которой я пытаюсь отключить и включить триггер. Мой вопрос заключается в том, какое минимальное количество разрешений я могу дать своей учетной записи, которая позволит ей успешно выполнять хранимую процедуру.

Ответы [ 2 ]

2 голосов
/ 05 января 2010

Вместо предоставления пользователю ALTER разрешений для таблицы, что может быть проблемой безопасности, я бы запустил эту конкретную хранимую процедуру от имени другого пользователя, у которого есть эти разрешения. Используйте для этого синтаксис EXECUTE AS.

http://msdn.microsoft.com/en-us/library/ms188354.aspx

2 голосов
/ 05 января 2010

Пользователю «как минимум» потребуются разрешения ALTER для данной таблицы. Смотри: http://technet.microsoft.com/en-us/library/ms182706.aspx

...