4

対称鍵にアクセスできるすべてのユーザーと、そのユーザーのアクセスの種類を知りたいです。どうすればこれができるか教えてください。

4

3 に答える 3

4

上記の回答は実際にはオブジェクト名を反映していません。代わりにこれを考慮してください。

select
      [database] = db_name()
    , u.name
    , p.permission_name
    , p.class
    , p.class_desc
    , ObjectNameForObjectORColumn
        = object_name(p.major_id) 
    , objectNameActual
        = case class_desc
            when 'SYMMETRIC_KEYS' then sm.name              
            when 'CERTIFICATE' then [cert].name             
      end
    , state_desc 
from sys.database_permissions  p 
inner join sys.database_principals u
    on p.grantee_principal_id = u.principal_id
left outer join sys.symmetric_keys sm
    on p.major_id = sm.symmetric_key_id
    and p.class_desc = 'SYMMETRIC_KEYS'
left outer join sys.certificates [cert]
    on p.major_id = [cert].[certificate_id]
    and p.class_desc = 'CERTIFICATE'
where class_desc in('SYMMETRIC_KEYS', 'CERTIFICATE')
order by u.name

詳細はこちらhttps://danieladeniji.wordpress.com/2015/10/09/sql-server-list-permissions-for-user/

于 2015-10-15T18:43:48.603 に答える