2014-09-03 45 views
0

我正在尝试为SQL Server 2008 R2上特定数据库的特定用户查找权限。如何检查sql用户对特定数据库有什么权限

我的数据库是testDB,用户名是testUser

这是我使用

SELECT 
    dp.type_desc AS principal_type_desc, 
    dbp.class_desc, 
    OBJECT_NAME(dbp.major_id) AS object_name, 
    dbp.permission_name, 
    dbp.state_desc AS permission_state_desc 
FROM 
    sys.database_permissions dbp 
INNER JOIN 
    sys.database_principals dp ON dbp.grantee_principal_id = dp.principal_id 
WHERE 
    USER_NAME(dbp.grantee_principal_id) = 'TestUser' 

不知道如何得到一个特定的用户权限在特定数据库

+0

[的sys.database_permissions?](http://msdn.microsoft.com/en-us/library/ms188367%28v=sql.100%29.aspx) – Andrew 2014-09-03 16:36:04

+0

可能的[SQL的重复服务器查询来查找所有的permis sions /访问所有用户在数据库中](http://stackoverflow.com/questions/7048839/sql-server-query-to-find-all-permissions-access-for-all-users-in-a-database ) – 2014-09-03 16:59:18

回答

1

如果你是山,你可以改变的背景下,然后使用脚本内置函数

execute as Login = 'testUser'; 
select * from sys.fn_my_permissions(NULL,'Database') 
相关问题