Share via


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_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';