【发布时间】:2014-01-17 14:26:22
【问题描述】:
我有几个带有 UserA 和 UserB 的数据库。
在其中一些 DB 中,已授予模拟 (GRANT IMPERSONATE ON LOGIN::UserA TO UserB),在其他 DB 中,用户没有模拟。
我如何通过查询来检查用户是否进行了模拟? 任何系统表中是否存在此标志?
【问题讨论】:
标签: sql sql-server impersonation
我有几个带有 UserA 和 UserB 的数据库。
在其中一些 DB 中,已授予模拟 (GRANT IMPERSONATE ON LOGIN::UserA TO UserB),在其他 DB 中,用户没有模拟。
我如何通过查询来检查用户是否进行了模拟? 任何系统表中是否存在此标志?
【问题讨论】:
标签: sql sql-server impersonation
我找到了这个查询...
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/
【讨论】: