Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как проставить права пользователю на группу процедур  [new]
ghghghf
Guest
К примеру у пользователя должно быть право выполнять
все процедуры в бд кроме системных. Но системных достаточно много ...
30 ноя 12, 17:19    [13557657]     Ответить | Цитировать Сообщить модератору
 Re: Как проставить права пользователю на группу процедур  [new]
Гость333
Member

Откуда:
Сообщений: 3683
ghghghf,

SELECT N'GRANT EXECUTE ON ' + QUOTENAME(SCHEMA_NAME(p.schema_id)) + N'.' + QUOTENAME(p.name) + ' TO vasya'
FROM sys.procedures p
WHERE <тут исключаете ненужное>
30 ноя 12, 18:05    [13558005]     Ответить | Цитировать Сообщить модератору
 Re: Как проставить права пользователю на группу процедур  [new]
ghghghf
Guest
:) прикол в том, что таким образом выбираются только обычные процедуры. А системные нет
3 дек 12, 17:57    [13570477]     Ответить | Цитировать Сообщить модератору
 Re: Как проставить права пользователю на группу процедур  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
ghghghf
:) прикол в том, что таким образом выбираются только обычные процедуры. А системные нет
Прикол в том, что системные процедуры находятся в БД master и не нужно их трогать.

Например, дать разрешение на выполнение всех процедур (не только существующих, но и тех, которые только будут созданы) в какой-либо схеме:
grant execute on schema::[Схема] to [Пользователь или роль];
3 дек 12, 18:10    [13570581]     Ответить | Цитировать Сообщить модератору
 Re: Как проставить права пользователю на группу процедур  [new]
ghghghf
Guest
системные процедуры - не только в бд мастер!
3 дек 12, 18:20    [13570659]     Ответить | Цитировать Сообщить модератору
 Re: Как проставить права пользователю на группу процедур  [new]
invm
Member

Откуда: Москва
Сообщений: 9646
ghghghf
системные процедуры - не только в бд мастер!
Вот упертый :)
http://msdn.microsoft.com/en-us/library/ms189915%28v=sql.105%29.aspx
System stored procedures begin with the characters sp_. They are physically stored in the Resource database, but logically appear in the sys schema of every system- and user-defined database in the instance of SQL Server. System stored procedures can be executed from any database without having to fully quality the stored procedure name. A nonschema-qualified name is either a one-part name such as sp_someproc or a three-part name such as somedb..sp_someproc with the second part, the schema name, unspecified.

We recommend that you schema-qualify all system stored procedure names with the sys schema name to prevent name conflicts. The following example demonstrates the recommended method of executing a system stored procedure.

Справедливости ради стоит заметить, что некоторые системные процедуры таки есть в пользовательских БД. Например, служебные процедуры репликации.
4 дек 12, 00:34    [13571885]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить