GRANT (サーバー プリンシパルの権限の許可) (Transact-SQL)
SQL Server ログインに対する権限を許可します。
構文
GRANT permission [ ,...n ] }
ON LOGIN :: SQL_Server_login
TO <server_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS SQL_Server_login ]
<server_principal> ::=
SQL_Server_login
| SQL_Server_login_from_Windows_login
| SQL_Server_login_from_certificate
| SQL_Server_login_from_AsymKey
引数
permission
SQL Server ログインで許可できる権限を指定します。権限の一覧については、後の「解説」を参照してください。LOGIN :: SQL_Server_login
許可される権限の対象となる SQL Server ログインを指定します。スコープ修飾子 (::) が必要です。TO <server_principal>
権限を許可する SQL Server ログインを指定します。SQL_Server_login
SQL Server ログインの名前を指定します。SQL_Server_login_from_Windows_login
Windows ログインから作成された SQL Server ログインの名前を指定します。SQL_Server_login_from_certificate
証明書にマップされている SQL Server ログインの名前を指定します。SQL_Server_login_from_AsymKey
非対称キーにマップされている SQL Server ログインの名前を指定します。WITH GRANT OPTION
権限が許可されたプリンシパルが、この権限を他のプリンシパルにも許可できることを示します。AS SQL_Server_login
このクエリを実行するプリンシパルが権限を許可する権利を取得した、元の SQL Server ログインを指定します。
説明
サーバー スコープの権限を許可できるのは、現在のデータベースが master のときだけです。
サーバー権限に関する情報は、sys.server_permissions カタログ ビューで確認できます。サーバー プリンシパルに関する情報は、sys.server_principals カタログ ビューで確認できます。
SQL Server ログインは、サーバー レベルのセキュリティ保護可能なリソースです。次の表に、SQL Server ログインで許可できる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
SQL Server ログイン権限 |
権限が含まれる SQL Server ログイン権限 |
権限が含まれるサーバー権限 |
---|---|---|
CONTROL |
CONTROL |
CONTROL SERVER |
IMPERSONATE |
CONTROL |
CONTROL SERVER |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
ALTER |
CONTROL |
ALTER ANY LOGIN |
権限
ログインに対する CONTROL 権限、またはサーバーに対する ALTER ANY LOGIN 権限が必要です。
例
A. ログインの IMPERSONATE 権限を許可する
次の例では、SQL Server ログイン WanidaBenshoof の IMPERSONATE 権限を、Windows ユーザー AdvWorks\YoonM から作成された SQL Server ログインに許可します。
USE master;
GRANT IMPERSONATE ON LOGIN::WanidaBenshoof to [AdvWorks\YoonM];
GO
B. GRANT OPTION を指定して VIEW DEFINITION 権限を許可する
次の例では、GRANT OPTION を指定して、SQL Server ログイン EricKurjan の VIEW DEFINITION 権限を SQL Server ログイン RMeyyappan に許可します。
USE master;
GRANT VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan
WITH GRANT OPTION;
GO