IS_SRVROLEMEMBER (Transact-SQL)
SQL Server 2005 ログインが、指定した固定サーバー ロールのメンバであるかどうかを示します。
構文
IS_SRVROLEMEMBER ('role' [ , 'login' ] )
引数
'role'
確認するサーバー ロールの名前です。role のデータ型は sysname です。role の有効な値は次のとおりです。
sysadmin
- dbcreator
- bulkadmin
- diskadmin
- processadmin
- serveradmin
- setupadmin
- securityadmin
- 'login'
確認する SQL Server 2005 ログインの名前です。login のデータ型は sysname で、既定値は NULL です。値を指定しない場合は、現在のユーザーの SQL Server ログインが使用されます。
戻り値の型
int
解説
IS_SRVROLEMEMBER は、次の値を返します。
戻り値 | 説明 |
---|---|
0 |
login は role のメンバではない。 |
1 |
login は role のメンバである。 |
NULL |
role または login が無効。 |
この関数は、現在のユーザーがサーバー ロールの権限を必要とするアクションを実行できるかどうかを判断するために使用します。
London\JoeB などの Microsoft Windows ログインを login に指定した場合、IS_SRVROLEMEMBER は、そのログインに SQL Server 2005 への直接アクセスが許可または拒否されている場合を除き、NULL を返します。
ログインが Windows ドメインのログインである場合、そのログインは、Windows グループのメンバシップを通じて、固定サーバー ロールのメンバになっている可能性があります。そのような間接的なメンバシップを解決するために、IS_SRVROLEMEMBER は、Windows グループのメンバシップ情報をドメイン コントローラに要求します。ドメイン コントローラにアクセスできないか、またはドメイン コントローラが応答しない場合、IS_SRVROLEMEMBER はユーザーとそのローカル グループのみを考慮したロール メンバシップ情報を返します。
例
次の例では、現在のユーザーの SQL Server ログインが固定サーバー ロール sysadmin
のメンバであるかどうかを示しています。
IF IS_SRVROLEMEMBER ('sysadmin') = 1
print 'Current user''s login is a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0
print 'Current user''s login is NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL
print 'ERROR: The server role specified is not valid.'
参照
関連項目
IS_MEMBER (Transact-SQL)
セキュリティ関数 (Transact-SQL)