Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Список защищаемых объектов роли  [new]
Алексаша
Member

Откуда: Левый берег
Сообщений: 371
Здравствуйте.

Как получить список защищаемых объектов роли?
1 авг 19, 15:21    [21939956]     Ответить | Цитировать Сообщить модератору
 Re: Список защищаемых объектов роли  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Алексаша,

это что ли?
SELECT pm.state_desc PermType,
  pm.permission_name PermName, 
  pm.class_desc PermClass, 
  CASE
    WHEN pm.class_desc = 'schema' THEN sc.name
    ELSE OBJECT_NAME(pm.major_id)
  END ObjectName
FROM sys.database_principals pr
  LEFT JOIN sys.database_permissions pm
    ON pr.principal_id = pm.grantee_principal_id
  LEFT JOIN sys.schemas sc
    ON pm.major_id = sc.schema_id
WHERE pr.name = 'DbRole1';
1 авг 19, 15:30    [21939965]     Ответить | Цитировать Сообщить модератору
 Re: Список защищаемых объектов роли  [new]
Алексаша
Member

Откуда: Левый берег
Сообщений: 371
TaPaK,

Спасибо.

на просторах интернета нашел такое решение :
SELECT  DB_NAME() AS 'DBName' ,
    p.[name] AS 'PrincipalName' ,
    p.[type_desc] AS 'PrincipalType' ,
    p2.[name] AS 'GrantedBy' ,
    dbp.[permission_name] ,
    dbp.[state_desc] ,
    CASE WHEN [dbp].[class_desc] = 'DATABASE' THEN 'DATABASE'
         ELSE COALESCE(so.[name], t.name)
    END AS 'ObjectName' ,
    CASE WHEN [dbp].[class_desc] = 'DATABASE' THEN 'DATABASE'
         ELSE COALESCE(so.[type_desc], N'TYPE')
    END AS 'ObjectType' 
FROM    [sys].[database_permissions] dbp
        LEFT JOIN [sys].[all_objects] so ON dbp.[major_id] = so.[object_id]
        LEFT JOIN [sys].[database_principals] p ON dbp.[grantee_principal_id] = p.[principal_id]
        LEFT JOIN [sys].[database_principals] p2 ON dbp.[grantor_principal_id] = p2.[principal_id]
        LEFT JOIN [sys].[types] t ON dbp.major_id = t.user_type_id
WHERE   p.[name] = 'db_executor';
1 авг 19, 16:27    [21940044]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить