sp_helpuser (Transact-SQL)
适用于:SQL Server
报告有关当前数据库中数据库级主体的信息。
重要
sp_helpuser
不会返回有关 SQL Server 2005 (9.x) 及更高版本中引入的安全对象的信息。 请改用 sys.database_principals 。
语法
sp_helpuser [ [ @name_in_db = ] N'name_in_db' ]
[ ; ]
参数
[ @name_in_db = ] N'name_in_db'
当前数据库中的数据库用户或数据库角色的名称。 @name_in_db为 sysname,默认值为 NULL
. 当前数据库中必须存在@name_in_db 。 如果未 指定@name_in_db , sp_helpuser
则返回有关所有数据库主体的信息。
返回代码值
0
(成功)或 1
(失败)。
结果集
下表显示了未为 @name_in_db指定用户帐户、SQL Server 或 Windows 用户时的结果集。
列名称 | 数据类型 | 描述 |
---|---|---|
UserName |
sysname | 当前数据库中的用户。 |
RoleName |
sysname | 属于的角色 UserName 。 |
LoginName |
sysname | 登录名 。UserName |
DefDBName |
sysname | 的默认数据库 。UserName |
DefSchemaName |
sysname | 数据库用户的默认架构。 |
UserID |
smallint | 当前数据库中的 UserName ID。 |
SID |
smallint | 用户的安全标识号 (SID)。 |
下表显示未指定用户帐户,并且当前数据库中存在别名时的结果集。
列名称 | 数据类型 | 描述 |
---|---|---|
LoginName |
sysname | 当前数据库中已经化名为用户名的登录名。 |
UserNameAliasedTo |
sysname | 当前数据库中登录名要化名为的用户名。 |
下表显示了为 @name_in_db指定角色时的结果集。
列名称 | 数据类型 | 描述 |
---|---|---|
Role_name |
sysname | 当前数据库中角色的名称。 |
Role_id |
smallint | 当前数据库中角色的角色 ID。 |
Users_in_role |
sysname | 当前数据库中角色的成员。 |
Userid |
smallint | 角色成员的用户 ID。 |
注解
若要查看有关数据库角色成员身份的信息,请使用 sys.database_role_members。 若要查看有关服务器角色成员的信息,请使用 sys.server_role_members,并查看有关服务器级主体的信息,请使用 sys.server_principals。
权限
要求 公共 角色具有成员身份。
返回的信息取决于对元数据的访问权限的限制。 主体没有权限的实体不会显示。 有关详细信息,请参阅 Metadata Visibility Configuration。
示例
A. 列出所有用户
以下示例列出当前数据库中的所有用户。
EXEC sp_helpuser;
B. 列出单个用户的信息
以下示例列出有关用户数据库所有者 (dbo
) 的信息。
EXEC sp_helpuser 'dbo';
°C 列出数据库角色的信息
以下示例列出了有关 db_securityadmin 固定数据库角色的信息。
EXEC sp_helpuser 'db_securityadmin';