sp_helpuser (Transact-SQL)

适用范围:SQL Server

报告有关当前数据库中数据库级主体的信息。

重要

sp_helpuser 不会返回有关 SQL Server 2005 (9.x) 及更高版本中引入的安全对象的信息。 请改用 sys.database_principals

Transact-SQL 语法约定

语法

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_dbsp_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';