如何在 SQL 服务器数据库中找到我的权限?

How to find my permissions in a SQL Server database?

我是 SQL 服务器数据库的用户,我想知道我在所用数据库中的访问权限/权限。我应该使用什么 SQL 查询来做到这一点?

谢谢

我认为最简单的方法是:

SELECT * FROM fn_my_permissions(NULL, 'SERVER');  
GO 

我在 SQL Server 2008 中尝试过。

参考:https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql

如果您正在寻找您可能缺少的东西以及您拥有的东西,这里有一个有用的查找方法:

SELECT all_permissions.permission_name, p.name
FROM (
    SELECT DISTINCT permission_name
    FROM sys.database_permissions
) all_permissions
LEFT JOIN (
    SELECT b.name, a.permission_name
    FROM sys.database_permissions a
    JOIN sys.database_principals b on a.grantee_principal_id = b.principal_id 
    WHERE b.name  = '{YOUR_NAME_OR_GROUP_NAME_HERE}'
) p ON p.permission_name = all_permissions.permission_name