次の方法で共有


xp_logininfo (Transact-SQL)

適用対象: SQL サーバー

Windows ユーザーと Windows グループに関する情報を返します。

Transact-SQL 構文表記規則

構文

xp_logininfo [ [ @acctname = ] 'account_name' ]
     [ , [ @option = ] 'all' | 'members' ]
     [ , [ @privilege = ] 'variable_name' OUTPUT ]

引数

[ @acctname = ] '@acctname'

SQL Server へのアクセスを許可された Windows ユーザーまたはグループの名前。 @acctnamesysname で、既定値は NULL です。 @acctnameが指定されていない場合は、ログインアクセス許可が明示的に付与されているすべての Windows グループと Windows ユーザーが報告されます。 @acctname は完全修飾である必要があります。 たとえば、CONTOSO\macraes、または BUILTIN\Administrators です。

[ @option = ] 'all' |'members' ]

アカウントのすべてのアクセス許可パスに関する情報を報告するか、Windows グループのメンバーに関する情報を報告するかを指定します。 @optionvarchar(10) で、既定値は NULL です。 allを指定しない限り、最初のアクセス許可パスのみが表示されます。

[ @privilege = ] 'variable_name' OUTPUT ]

指定した Windows アカウントの特権レベルを返す出力パラメーター。 @privilegevarchar(10) で、既定値は Not wanted です。 返される特権レベルは、 useradmin、または null です。

OUTPUTを指定すると、このオプションは出力パラメーターに@privilegeを入れます。

リターン コードの値

0 (成功) または 1 (失敗)。

結果セット

列名 データ型 説明
アカウント名 sysname 完全修飾 Windows アカウント名。
type char(8) Windows アカウントの種類。 有効な値は user または groupです。
特権 char(9) SQL Server のアクセス特権。 有効な値は、adminuser、または NULL です。
マップされたログイン名 sysname ユーザー特権を持つユーザー アカウントの場合、マップされたログイン名は、その前に追加されたドメイン名でマップされた規則を使用して、このアカウントでログインするときに SQL Server が使用しようとするマップされたログイン名を表示します。
アクセス許可パス sysname アカウントアクセスを許可したグループ メンバーシップ。

解説

@acctnameが指定されている場合、xp_logininfoは、指定した Windows ユーザーまたはグループの最高の特権レベルを報告します。 Windows ユーザーがシステム管理者とドメイン ユーザーの両方としてアクセス権を持っている場合は、システム管理者として報告されます。 ユーザーが同じ特権レベルの複数の Windows グループのメンバーである場合は、SQL Server へのアクセスが最初に許可されたグループのみが報告されます。

@acctnameが、SQL Server ログインに関連付けられていない有効な Windows ユーザーまたはグループである場合は、空の結果セットが返されます。 @acctname有効な Windows ユーザーまたはグループとして識別できない場合は、エラー メッセージが返されます。

@acctnameallを指定すると、Windows ユーザーまたはグループのすべてのアクセス許可パスが返されます。 @acctnameが複数のグループのメンバーであり、そのすべてが SQL Server へのアクセスを許可されている場合は、複数の行が返されます。 admin特権行は、user特権行の前に返され、特権レベル内では、対応する SQL Server ログインが作成された順序で行が返されます。

@acctnamemembersを指定すると、グループの次のレベルのメンバーの一覧が返されます。 @acctnameがローカル グループの場合、一覧にはローカル ユーザー、ドメイン ユーザー、グループを含めることができます。 @acctnameがドメイン アカウントの場合、一覧はドメイン ユーザーで構成されます。 SQL Server は、グループ メンバーシップ情報を取得するためにドメイン コントローラーに接続する必要があります。 サーバーがドメイン コントローラーに接続できない場合、情報は返されません。

xp_logininfo は、ユニバーサル グループではなく、Active Directory グローバル グループからの情報のみを返します。

アクセス許可

sysadmin固定サーバー ロールのメンバーシップ、または EXECUTE 権限が付与されたmaster データベースのpublic固定データベース ロールのメンバーシップが必要です。

次の例では、 BUILTIN\Administrators Windows グループに関する情報を表示します。

EXEC xp_logininfo 'BUILTIN\Administrators';