sys.server_principals (Transact-SQL)

适用于:yesSQL Server(所有支持的版本)YesAzure SQL 托管实例yesAnalytics Platform System (PDW)

每个服务器级别主体占一行。

列名称 数据类型 说明
name sysname 主体的名称。 在服务器中是唯一的。
principal_id int 主体的 ID 号。 在服务器中是唯一的。
varbinary(85) 主体的 SID(安全标识符)。 如果是 Windows 主体,则它与 Windows SID 匹配。
type char(1) 主体类型:

S = SQL 登录名

U = Windows 登录名

G = Windows 组

R = 服务器角色

C = 映射到证书的登录名

E = 来自Azure Active Directory的外部登录

X = 来自Azure Active Directory组或应用程序的外部组

K = 映射到非对称密钥的登录名
type_desc nvarchar(60) 主体类型的说明:

SQL_LOGIN

WINDOWS_LOGIN

WINDOWS_GROUP

SERVER_ROLE

CERTIFICATE_MAPPED_LOGIN

EXTERNAL_LOGIN

EXTERNAL_GROUP

ASYMMETRIC_KEY_MAPPED_LOGIN
is_disabled int 1 = 禁用登录名。
create_date datetime 主体的创建时间。
modify_date datetime 上次修改主体定义的时间。
default_database_name sysname 该主体的默认数据库。
default_language_name sysname 该主体的默认语言。
credential_id int 与该主体关联的凭据的 ID。 如果没有与该主体关联的凭据,则 credential_id 将为 NULL。
owning_principal_id int 服务器角色的所有者 principal_id 。 如果主体不是服务器角色,则为 NULL。
is_fixed_role bit 如果主体是具有固定权限的内置服务器角色之一,则返回 1。 有关详细信息,请参阅 服务器级别角色

权限

任何登录都可以查看自己的登录名称、系统登录和固定的数据库角色。 要查看其他登录,需要获取 ALTER ANY LOGIN 或有关登录的权限。 要查看用户定义的服务器角色,需要获取 ALTER ANY SERVER ROLE 或相关的角色成员身份。

目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 Metadata Visibility Configuration

示例

以下查询将列出明确对服务器主体授予或拒绝的权限。

重要

除公共) 以外的固定服务器 (角色的权限不会显示在sys.server_permissions中。 因此,服务器主体可能具有此处未列出的其他权限。

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pe.state_desc, pe.permission_name   
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe   
    ON pe.grantee_principal_id = pr.principal_id;  

另请参阅

安全性目录视图 (Transact-SQL)
目录视图 (Transact-SQL)
主体(数据库引擎)
权限层次结构(数据库引擎)