我有几个使用UserA和UserB的数据库。
在其中一些数据库中,模拟已被授予(GRANT IMPERSONATE ON LOGIN::UserA TO UserB
),在其他数据库中,用户没有模仿。
如果用户是否进行了模拟,我如何查询查询? 在这个系统表中是否存在标志?
答案 0 :(得分:3)
我找到了这个查询...
SELECT DB_NAME() AS 'database'
,pe.permission_name
,pe.state_desc
,pr.name AS 'grantee'
,pr2.name AS 'grantor'
FROM sys.database_permissions pe
JOIN sys.database_principals pr
ON pe.grantee_principal_id = pr.principal_Id
JOIN sys.database_principals pr2
ON pe.grantor_principal_id = pr2.principal_Id
WHERE pe.type = 'IM'
下面...
http://tenbulls.co.uk/2012/01/30/what-are-the-impersonation-rights-for-my-database-users/