Получите полномочия для хранимой процедуры в SQL-сервере 2005

Массивам нужно присвоить длина. Для обеспечения любого числа элементов используйте List класс.

, Например:

List myInts = new List();
myInts.Add(5);
myInts.Add(10);
myInts.Add(11);
myInts.Count // = 3

14
задан OMG Ponies 15 September 2009 в 15:43
поделиться

3 ответа

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

You can tweak this to join to sys.database_principals, or sys.objects if you want too

26
ответ дан 1 December 2019 в 07:12
поделиться

try (NOTE: works for more than stored procedures):

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'
11
ответ дан 1 December 2019 в 07:12
поделиться

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

1
ответ дан 1 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: