sys.database_principals (Transact-SQL)

为数据库中的每个主体返回一行。

列名

数据类型

说明

name

sysname

主体名称,在数据库中唯一。

principal_id

int

主体 ID,在数据库中唯一。

类型

char(1)

主体类型:

S = SQL 用户

U = Windows 用户

G = Windows 组

A = 应用程序角色

R = 数据库角色

C = 映射到证书的用户

K = 映射到非对称密钥的用户

type_desc

nvarchar(60)

主体类型的说明。

SQL_USER

WINDOWS_USER

WINDOWS_GROUP

APPLICATION_ROLE

DATABASE_ROLE

CERTIFICATE_MAPPED_USER

ASYMMETRIC_KEY_MAPPED_USER

default_schema_name

sysname

当 SQL 名称未指定架构时使用的名称。对于非 S、U 或 A 类型的主体,为 Null。

create_date

datetime

主体的创建时间。

modify_date

datetime

上次修改主体的时间。

owning_principal_id

int

拥有此主体的主体的 ID。除数据库角色以外的所有主体必须由 dbo 拥有。

sid

varbinary(85)

如果在数据库外部定义主体(S、U 和 G 类型),则为 SID(安全标识符)。否则为 NULL。

is_fixed_role

bit

如果为 1,则该行表示与以下某一固定数据库角色对应的条目:db_owner、db_accessadmin、db_datareader、db_datawriter、db_ddladmin、db_securityadmin、db_backupoperator、db_denydatareader、db_denydatawriter。

权限

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

在 SQL Server 2005 及更高版本中,目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。有关详细信息,请参阅元数据可见性配置