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 。 |
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. 列出所有使用者
下列範例會列出目前資料庫中的所有使用者。
EXEC sp_helpuser;
B. 列出單一用戶的資訊
下列範例會列出使用者資料庫擁有者 (dbo
) 的相關信息。
EXEC sp_helpuser 'dbo';
C. 列出資料庫角色的資訊
下列範例會列出db_securityadmin固定資料庫角色的相關信息。
EXEC sp_helpuser 'db_securityadmin';