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
(失敗)。
結果セット
次の表は、ユーザー アカウント、SQL Server、または Windows ユーザーが @name_in_dbに指定されていない場合の結果セットを示しています。
列名 | データ型 | 説明 |
---|---|---|
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を使用します。
アクセス許可
ロール public のメンバーシップが必要です。
返される情報は、メタデータへのアクセスに関する制限の対象となります。 プリンシパルにアクセス許可がないエンティティは表示されません。 詳細については、「 Metadata Visibility Configuration」を参照してください。
例
A. すべてのユーザーのリスト
次の例では、現在のデータベースに存在するすべてのユーザーを表示します。
EXEC sp_helpuser;
B. 1 人のユーザーの情報を一覧表示する
次の例では、ユーザー データベース所有者 (dbo
) に関する情報を一覧表示します。
EXEC sp_helpuser 'dbo';
C: データベース ロールの情報を一覧表示する
次の例では、固定データベース ロール db_securityadmin に関する情報を一覧表示します。
EXEC sp_helpuser 'db_securityadmin';