Подтвердить что ты не робот

Получить разрешения для хранимой процедуры в SQL Server 2005

Как получить предоставленные разрешения для хранимой процедуры в SQL Server 2005?

4b9b3361

Ответ 1

SELECT
    OBJECT_NAME(major_id), USER_NAME(grantee_principal_id), permission_name
FROM
    sys.database_permissions p
WHERE
    OBJECT_NAME(major_id) = 'MyProc'

Вы можете настроить это, чтобы присоединиться к sys.database_principals или sys.objects, если вы тоже хотите

Ответ 2

try (ПРИМЕЧАНИЕ: работает для более чем хранимых процедур):

SELECT
    dp.NAME AS principal_name
        ,dp.type_desc AS principal_type_desc
        ,o.NAME AS object_name
        ,o.type_desc
        ,p.permission_name
        ,p.state_desc AS permission_state_desc
    FROM sys.all_objects                          o
        INNER JOIN sys.database_permissions       p ON o.OBJECT_ID=p.major_id
        LEFT OUTER JOIN sys.database_principals  dp ON p.grantee_principal_id = dp.principal_id
    WHERE o.NAME = 'YourProcedureName'

Ответ 3

Вид не по теме, но... вы могли бы включить в своем развитии db, чтобы "запомнить" разрешения, которые он имел на разных объектах и хранить их во время разработки независимо от того, сколько раз вы бросаете и создаете объект...