Я попытался найти ответ, но этот сценарий кажется уникальным или необычным. Выполнение SQL 2008 и 2012. Мы хотели бы настроить пользователя, который может только читать данные, выполнять хранимые процедуры и просматривать определение хранимой процедуры (последний бит является необязательным). Назовем этого пользователя «servicedesk». Я также создал роль под названием «Exec_sps»SQL, предоставить пользователю только readaccess, выполнить хранимую процедуру для вставки, удаления, удаления и т. Д.
Хранимые процедуры должны иметь возможность вставлять, обновлять, удалять, отбрасывать таблицу. Но пользователь «servicedesk» не должен это делать вообще. Только с помощью хранимой процедуры. И пользователь, конечно, не должен сам изменять процедуру.
Мне удалось создать доказательство концепции, добавив выполнение в роль и добавив пользователя «servicedesk» к этой роли. Но когда я это делаю, пользовательский «справочный центр» всегда получает более высокое разрешение на изменение хранимой процедуры, чего мы хотим избежать.
Таким образом, в основном, предоставить низкий доступ к пользователю, пользователь может выполнить хранимую процедуру и много разрешений для этой процедуры, без того, чтобы пользователь наследовал доступ к хранимым процедурам.
Это выполнимо?
С уважением
Почему вы хотите, чтобы эта роль могла просматривать определение вашей процедуры? Это кажется довольно глупым. Они могут рассматривать логику, но ничего не могут сделать. Если им нельзя доверять данные, почему им следует доверять, чтобы просмотреть логику? –
Привет. Фактически просмотр определения хранимой процедуры не является обязательным. Важно то, что пользователь может «исправлять» данные через хранимую процедуру, не имея возможности модифицировать что-либо своими собственными привилегиями, вне хранимой процедуры. –
Я полагаю, вы могли бы выполнить хранимые процедуры как кто-то с более высокими привилегиями. например 'create proc myproc с выполнением как 'myadminaccount' как begin ...' – ZLK