sys.sp_helpuser(Transact-SQL)

適用於:SQL Server

報告目前資料庫中資料庫層級主體的相關信息。

重要

sp_helpuser 不會傳回 SQL Server 2005 (9.x) 和更新版本中引進的安全性實體相關信息。 請改用 sys.database_principals 。

Transact-SQL 語法慣例

語法

sys.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 。
SID smallint 使用者安全性標識碼(SID)。

下表顯示在目前資料庫中沒有指定用戶帳戶且別名存在時的結果集。

資料行名稱 資料類型 描述
LoginName sysname 目前資料庫中用戶別名的登入。
UserNameAliasedTo sysname 登入別名所在的目前資料庫中的用戶名稱。

下表顯示為 @name_in_db 指定角色時的結果集。

資料行名稱 資料類型 描述
Role_name sysname 目前資料庫中的角色名稱。
Role_id smallint 目前資料庫中角色的角色標識碼。
Users_in_role sysname 目前資料庫中角色的成員。
Userid smallint 角色成員的使用者標識碼。

備註

若要查看資料庫角色成員資格的相關信息,請使用 sys.database_role_members。 若要查看伺服器角色成員的相關信息、使用 sys.server_role_members,以及查看伺服器層級主體的相關信息,請使用 sys.server_principals。

權限

需要 public 角色的成員資格。

傳回的資訊受限於元數據的存取限制。 主體沒有許可權的實體不會出現。 如需相關資訊,請參閱 Metadata Visibility Configuration。

範例

A. 列出所有使用者

下列範例會列出目前資料庫中的所有使用者。

EXECUTE sp_helpuser;

B. 列出單一用戶的資訊

下列範例會列出使用者資料庫擁有者 (dbo) 的相關信息。

EXECUTE sp_helpuser 'dbo';

C. 列出資料庫角色的資訊

下列範例會列出db_securityadmin固定資料庫角色的相關信息。

EXECUTE sp_helpuser 'db_securityadmin';