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 及更高版本中,目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。有关详细信息,请参阅元数据可见性配置。