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 对象拥有太多权限,有时可能不容易看清楚,可以通过筛选或者按照需要的列进行排序来进行快速定位。