📌  相关文章
📜  SQL Server 查询以查找数据库中所有用户的所有权限/访问权限

📅  最后修改于: 2022-05-13 01:55:36.653000             🧑  作者: Mango

SQL Server 查询以查找数据库中所有用户的所有权限/访问权限

有多种方法可以列出 Oracle SQL 中数据库中存在的用户的所有权限。下面的文章描述了这些方法。对于本文,我们将使用 Microsoft SQL Server 作为我们的数据库。

方法一:该方法列出数据库授予用户的所有服务器级权限。在这里,我们使用名为 SYS.FN_MY_PERMISSIONS 的内置函数,用于显示当前用户(MY 关键字)甚至任何其他用户的权限。这里,关键字“SERVER”表示该函数应列出默认授予用户的所有服务器级权限。

询问:

SELECT * FROM FN_MY_PERMISSIONS
(NULL, 'SERVER');

输出:

方法 2:接下来我们看看如何列出 SQL 中存在的所有安全类。这些所有类及其各自的权限也位于默认权限列表中。 SQL 中共有 27 个安全类。下面列出了所有内容。

询问:

SELECT DISTINCT CLASS_DESC FROM 
SYS.FN_BUILTIN_PERMISSIONS(DEFAULT);

输出:

方法三:本方法只是上述方法的一种扩展形式。它列出了所有权限的名称、类型、父类和所有权限的控制服务器。在这里,所有权限的父类都是 SERVER。

询问:

SELECT * FROM SYS.FN_BUILTIN
_PERMISSIONS(DEFAULT);

输出:

方法四:这里我们使用自己的数据库,即GEEKSFORGEEKS。因此,我们使用关键字 USE 开始使用这个数据库。然后,我们使用 SYS.FN_BUILTIN_PERMISSIONS(DEFAULT) 命令显示该数据库中所有用户的所有权限。结果显示了实体服务器的所有 34 个角色。

询问:

USE GEEKSFORGEEKS
SELECT * FROM SYS.FN_BUILTIN_
PERMISSIONS(DEFAULT);

输出: