2010-02-25 2 views
0

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

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

sa:

sp_MSrepl_startup

sp_MScleanupmergepublisher

administrator:

xp_foo

sp_bar

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

PHILLIPE

ответ

1

Самый простой будет 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 

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

Смежные вопросы