SQL Server如何查看login所授予的具体权限问题

1. 背景介绍

在 SQL Server 中,login 是指一个服务器级别的安全主体,它是一组使用者身份验证和对 SQL Server 实例的访问权限。通常,login 对象被创建并被授权执行特定操作,如连接到实例、启动并停止服务,或创建数据库。为了确保服务器的安全,我们需要查看 login 对象被授予了哪些具体的权限。

2. 查看 login 对象所授予的权限

2.1 使用 SSMS 查看 login 对象权限

可以通过 SQL Server Management Studio(SSMS)来查看 login 对象所授予的权限:

在 SSMS 中,展开“Security”文件夹,然后展开“Logins”文件夹。

右键单击要查看权限的 login 对象,然后选择“Properties”。

在“Login Properties”对话框中,选择“Server Roles”或“User Mapping”选项卡。

在“Server Roles”选项卡中,你可以查看这个 login 对象是否是一个系统管理员、安全管理员或者数据库管理员等。

在“User Mapping”选项卡中,你可以查看这个 login 对象所拥有的数据库用户和对这些用户的授予的数据库角色以及其他的具体权限。

这是一个示例截图:

2.2 使用 T-SQL 查看 login 对象权限

可以使用 T-SQL 查看 login 对象所授予的权限:

USE master;

GO

SELECT

dp.name AS principal_name,

dp.type_desc AS principal_type_desc,

dpp.permission_name,

dpp.state_desc AS permission_state_desc

FROM sys.server_principals AS dp

LEFT JOIN sys.server_permissions AS dpp

ON dp.principal_id = dpp.grantee_principal_id

WHERE

dp.type IN ('S', 'U', 'G')

AND dp.name = 'login_name';

说明:

sys.server_principals 表用于返回 SQL Server 实例中所有可用的服务器级别的安全主体,包括 login、Windows 用户、Windows 用户组和角色等。

sys.server_permissions 表用于返回 SQL Server 实例中所有安全主体所授予的服务器级别权限。

在上面的示例代码中,我们选择 name 为 'login_name' 的 login 对象,并列出了该 login 对象所授予的所有服务器级别权限。

3. 总结

本文介绍了如何查看 SQL Server 中 login 对象所授予的具体权限,可以通过 SQL Server Management Studio 或者 T-SQL 来查看。如果一个 login 对象拥有太多权限,有时可能不容易看清楚,可以通过筛选或者按照需要的列进行排序来进行快速定位。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签