sp_helpuser (Transact-SQL)

适用于: 是SQL Server(所有支持的版本)

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

重要

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

主题链接图标 Transact-SQL 语法约定

语法

  
sp_helpuser [ [ @name_in_db = ] 'security_account' ]  

参数

[ @name_in_db = ] 'security_account' 当前数据库中的数据库用户或数据库角色的名称。 当前数据库中必须存在 security_accountsecurity_account 的默认值为 sysname,默认值为 NULL。 如果未指定 security_accountsp_helpuser 将返回有关所有数据库主体的信息。

返回代码值

0(成功)或 1(失败)

结果集

下表显示了在用户帐户和 SQL Server 或 Windows 用户均未指定 security_account 的情况下的结果集。

列名称 数据类型 说明
UserName sysname 当前数据库中的用户。
RoleName sysname 用户名 所属的角色。
LoginName sysname 用户名 的登录名。
DefDBName sysname 用户名 的默认数据库。
DefSchemaName sysname 数据库用户的默认架构。
UserID smallint 当前数据库中的 用户名 的 ID。
SID smallint 用户的安全标识号 (SID)。

下表显示未指定用户帐户,并且当前数据库中存在别名时的结果集。

列名称 数据类型 说明
LoginName sysname 当前数据库中已经化名为用户名的登录名。
UserNameAliasedTo sysname 当前数据库中登录名要化名为的用户名。

下表显示了为 security_account 指定角色时的结果集。

列名称 数据类型 说明
Role_name sysname 当前数据库中角色的名称。
Role_id smallint 当前数据库中角色的角色 ID。
Users_in_role sysname 当前数据库中角色的成员。
Id 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';  

另请参阅

安全存储过程 (Transact-SQL)
系统存储过程 (Transact-SQL)
主体(数据库引擎)
sys.database_principals (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.server_principals (Transact-SQL)
sys.server_role_members (Transact-SQL)