REVOKE (オブジェクトの権限の取り消し) (Transact-SQL)
テーブル、ビュー、テーブル値関数、ストアド プロシージャ、拡張ストアド プロシージャ、スカラー関数、集計関数、サービス キュー、またはシノニムに対する権限を取り消します。
構文
REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
{ FROM | TO } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
引数
permission
スキーマに含まれるオブジェクトで取り消すことができる権限を指定します。 権限の一覧については、後の「解説」を参照してください。ALL
ALL を指定しても、可能な権限がすべて取り消されるわけではありません。 ALL を指定すると、指定したオブジェクトに適用されるすべての ANSI-92 権限を取り消すことになります。 ALL の意味は、状況に応じて次のようになります。スカラー関数の権限の場合は、EXECUTE、REFERENCES。
テーブル値関数の権限の場合は、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
ストアド プロシージャの権限の場合は、EXECUTE。
テーブルの権限の場合は、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
ビューの権限の場合は、DELETE、INSERT、REFERENCES、SELECT、UPDATE。
PRIVILEGES
ANSI-92 準拠のために用意されています。 ALL の動作は変更されません。column
権限を取り消すテーブル、ビュー、またはテーブル値関数内の列の名前を指定します。 かっこ ( ) で囲む必要があります。 列で拒否できるのは、SELECT、REFERENCES、および UPDATE の各権限だけです。 column は permission 句内、またはセキュリティ保護可能なリソースの名前の後に指定できます。ON [ OBJECT :: ] [ schema_name ] .object_name
権限を取り消すオブジェクトを指定します。 OBJECT 句は、schema_name を指定する場合は省略可能です。 OBJECT 句を使用する場合は、スコープ修飾子 (::) が必要です。 schema_name を指定しない場合は、既定のスキーマが使用されます。 schema_name を指定する場合は、スキーマのスコープ修飾子 (.) が必要です。{ FROM | TO } <database_principal>
権限を取り消すプリンシパルを指定します。GRANT OPTION
指定した権限を他のプリンシパルに許可するための権利が、取り消されます。 権限自体は取り消されません。重要 指定した権限が GRANT オプションなしでプリンシパルに許可されている場合は、その権限自体が取り消されます。
CASCADE
このプリンシパルによって権限が許可または拒否されている他のプリンシパルからも、同じ権限が取り消されることを示します。注意 WITH GRANT OPTION で許可されている権限を CASCADE で取り消すと、その権限の GRANT および DENY の両方が取り消されます。
AS <database_principal>
このクエリを実行するプリンシパルが権限を取り消す権利を取得した、元のプリンシパルを指定します。Database_user
データベース ユーザーを指定します。Database_role
データベース ロールを指定します。Application_role
アプリケーション ロールを指定します。Database_user_mapped_to_Windows_User
Windows ユーザーにマップされているデータベース ユーザーを指定します。Database_user_mapped_to_Windows_Group
Windows グループにマップされているデータベース ユーザーを指定します。Database_user_mapped_to_certificate
証明書にマップされているデータベース ユーザーを指定します。Database_user_mapped_to_asymmetric_key
非対称キーにマップされているデータベース ユーザーを指定します。Database_user_with_no_login
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。
説明
オブジェクトに関する情報は、各種カタログ ビューに表示されます。 詳細については、「オブジェクト カタログ ビュー (Transact-SQL)」を参照してください。
オブジェクトは、スキーマ レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているスキーマに含まれています。 次の表に、オブジェクトで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
オブジェクト権限 |
権限が含まれるオブジェクト権限 |
権限が含まれるスキーマ権限 |
---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
権限
オブジェクトに対する CONTROL 権限が必要です。
AS 句を使用する場合、指定されるプリンシパルは、権限が取り消されるオブジェクトを所有している必要があります。
使用例
A. テーブルの SELECT 権限を取り消す
次の例では、AdventureWorks2012 データベースのテーブル Person.Address に対する SELECT 権限を、ユーザー RosaQdM から取り消します。
USE AdventureWorks2012;
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;
GO
B. ストアド プロシージャの EXECUTE 権限を取り消す
次の例では、ストアド プロシージャ HumanResources.uspUpdateEmployeeHireInfo の EXECUTE 権限を、アプリケーション ロール Recruiting11 から取り消します。
USE AdventureWorks2012;
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
FROM Recruiting11;
GO
C. CASCADE を指定してビューの REFERENCES 権限を取り消す
次の例では、ビュー HumanResources.vEmployee 内の列 BusinessEntityID の REFERENCES 権限を、ユーザー Wanida から取り消します。ここでは CASCADE を使用します。
USE AdventureWorks2012;
REVOKE REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
FROM Wanida CASCADE;
GO
関連項目
参照
GRANT (オブジェクトの権限の許可) (Transact-SQL)
DENY (オブジェクトの権限の拒否) (Transact-SQL)
オブジェクト カタログ ビュー (Transact-SQL)
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)