Как я могу настроить пользователя сервера SQL для выполнения хранимых процедур в режиме только для чтения - PullRequest
2 голосов
/ 13 февраля 2012

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

Ответы [ 4 ]

4 голосов
/ 13 февраля 2012

Просто не дайте разрешения на хранимые процедуры, которые изменяют данные.

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

Примечание: цепочка владения означает, что разрешения для таблиц не будут проверяться, даже DENY, поэтому это не будет работать.

2 голосов
/ 13 февраля 2012

Да. Установите для этого пользователя разрешение EXECUTE, тогда он сможет выполнять только хранимые процедуры в вашей базе данных.

GRANT EXECUTE ON dbo.storedprocedurename TO SQLUSERNAME;
0 голосов
/ 13 февраля 2012

дайте разрешение на выполнение в процедуре и убедитесь, что у пользователя нет прав на запись в таблицы, используемые процедурой. Проверьте, не является ли он членом роли db_datawriter.

Если вы хотите быть уверены на 100%, добавьте пользователя в роль db_denydatawriter

0 голосов
/ 13 февраля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...