GRANT (Transact-SQL)
セキュリティ保護可能なリソースに対する権限をプリンシパルに許可します。
構文
Simplified syntax for GRANT
GRANT { ALL [ PRIVILEGES ] }
| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ WITH GRANT OPTION ] [ AS principal ]
引数
ALL
このオプションは旧バージョンとの互換性のためだけに保持されており、使用は推奨されません。実際にはすべての権限が許可されるわけではありません。ALL を指定すると、次の権限が許可されます。セキュリティ保護可能なリソースがデータベースの場合、BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATE VIEW。
セキュリティ保護可能なリソースがスカラ関数の場合、EXECUTE および REFERENCES。
セキュリティ保護可能なリソースがテーブル値関数の場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
セキュリティ保護可能なリソースがストアド プロシージャの場合、EXECUTE。
セキュリティ保護可能なリソースがテーブルの場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
セキュリティ保護可能なリソースがビューの場合、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
PRIVILEGES
ISO 準拠のために用意されています。ALL の動作は変更されません。permission
権限の名前です。権限とセキュリティ保護可能なリソースの有効な組み合わせについては、後のトピックを参照してください。column
権限を許可するテーブルの列の名前を指定します。かっこ ( ) で囲む必要があります。class
権限を許可するセキュリティ保護可能なリソースのクラスを指定します。スコープ修飾子 :: が必要です。securable
権限を許可するセキュリティ保護可能なリソースを指定します。TO principal
プリンシパルの名前を指定します。セキュリティ保護可能なリソースに対する権限を許可できるプリンシパルは、そのリソースによって異なります。有効な組み合わせについては、後のトピックを参照してください。GRANT OPTION
権限を許可されたプリンシパルが、この権限を他のプリンシパルにも許可できることを示します。AS principal
このクエリを実行するプリンシパルが権限を許可する権利を取得した、元のプリンシパルを指定します。
説明
GRANT ステートメントの完全な構文は複雑です。前の構文図は、構造をわかりやすくするために簡略化されています。セキュリティ保護可能なリソースに対する権限を許可するための完全な構文については、後のトピックを参照してください。
許可された権限を取り消す場合は REVOKE ステートメントを使用します。また、GRANT ステートメントによってプリンシパルに特定の権限が許可されないようにするには DENY ステートメントを使用します。
権限を許可すると、指定したセキュリティ保護可能なリソースに対する権限の DENY または REVOKE は削除されます。対象のセキュリティ保護可能なリソースの上位スコープで同じ権限が拒否されている場合は、その DENY ステートメントが優先されますが、上位スコープで許可されている権限を取り消そうとしても、その REVOKE ステートメントは優先されません。
データベース レベルの権限は、指定されたデータベースのスコープ内で許可されます。ユーザーが別のデータベースのオブジェクトに対する権限を必要とする場合、そのデータベースにユーザー アカウントを作成するか、または現在のデータベースへのアクセス権と同様に、そのデータベースへのアクセス権もユーザー アカウントに与えます。
注意 |
---|
テーブル レベルの DENY ステートメントは列レベルの GRANT ステートメントよりも優先されません。この動作は権限の階層内で一貫していませんが、旧バージョンとの互換性のために保持されています。将来のリリースでは削除される予定です。 |
システム ストアド プロシージャ sp_helprotect では、データベース レベルのセキュリティ保護可能なリソースに対する権限がレポートされます。
権限
権限の許可者 (または AS オプションで指定されたプリンシパル) は、GRANT OPTION によって与えられた権限を保持しているか、権限が暗黙的に与えられる上位の権限を保持している必要があります。AS オプションを使用する場合は、追加の要件を満たす必要があります。詳細については、セキュリティ保護可能なリソース別のトピックを参照してください。
オブジェクトの所有者は、所有するオブジェクトの権限を許可できます。セキュリティ保護可能なリソースに対して CONTROL 権限があるプリンシパルは、そのリソースの権限を許可できます。
sysadmin 固定サーバー ロールのメンバなど、CONTROL SERVER 権限が許可されているユーザーは、サーバー内のセキュリティ保護可能なリソースに対する権限を許可できます。db_owner 固定データベース ロールのメンバなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を許可できます。スキーマに対する CONTROL 権限が許可されているユーザーは、スキーマ内のオブジェクトに対する権限を許可できます。
例
セキュリティ保護可能なリソース別の構文については、次のトピックを参照してください。
アプリケーション ロール |
|
アセンブリ |
|
非対称キー |
|
証明書 |
|
コントラクト |
|
データベース |
|
エンドポイント |
|
フルテキスト カタログ |
|
フルテキスト ストップ リスト |
|
関数 |
|
ログイン |
|
メッセージ型 |
|
オブジェクト |
|
キュー |
|
リモート サービス バインド |
|
ロール |
|
ルート |
|
スキーマ |
|
サーバー |
|
サービス |
|
ストアド プロシージャ |
|
対称キー |
|
シノニム |
|
システム オブジェクト |
|
テーブル |
|
型 |
|
ユーザー |
|
ビュー |
|
XML スキーマ コレクション |