список хранимых процедур, которые могут быть вызваны каждым пользователем - PullRequest
0 голосов
/ 25 февраля 2010

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

пример вывода:

sa:

sp_MSrepl_startup

sp_MScleanupmergepublisher

administrator:

xp_foo

sp_bar

Любая помощь будет оценена

Филлип

1 Ответ

1 голос
/ 25 февраля 2010

Самый простой будет sp_helprotect , но это унаследовано

Это SQL Server 2005+, но код здесь довольно простой и должен быть расширен по мере необходимости:

SELECT
    SUSER_SNAME(u.sid), OBJECT_NAME(p.major_id)
FROM
    sys.database_permissions p
    JOIN
    sys.database_principals u ON p.grantee_principal_id = u.principal_id

Если у пользователя БД есть права на код без роли или вложенных ролей, это может быть ужасно быстро ...

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