Пользователь SQL может запускать только proc, но этот proc может делать что угодно - PullRequest
2 голосов
/ 24 октября 2008

В SQL Server 2005 я хочу, чтобы пользователь с именем LimitedUser мог запускать только один процесс: GRANT EXEC ON [usp_RunETL] TO [LimitedUser]

Однако, этот процесс должен уметь делать все - ОБНОВЛЕНИЕ, УДАЛЕНИЕ, ВСТАВКА, ВЫПОЛНЕНИЕ ... все. Как мне это сделать, не предоставляя все эти разрешения LimitedUser?

Ответы [ 2 ]

3 голосов
/ 24 октября 2008

LimitedUser требуется только разрешение для запуска sproc. Им не нужны никакие другие разрешения.

0 голосов
/ 24 октября 2008

Вам нужно только GRANT EXEC для пользователя с ограниченными правами. Пока пользователь имеет разрешения для хранимой процедуры, он игнорирует / переопределяет разрешения для операций внутри процедуры.

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

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