次の方法で共有


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_dbsysname で、既定値は 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';