REVOKE (データベースの権限の取り消し) (Transact-SQL)
データベースに対して許可および拒否された権限を取り消します。
構文
REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ]
{ TO | FROM } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<permission> ::=
permission | ALL [ PRIVILEGES ]
<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 を指定した場合は、BACKUP DATABASE、BACKUP LOG、CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、および CREATE VIEW 権限を取り消すことになります。
- PRIVILEGES
SQL-92 準拠のために用意されています。ALL の動作は変更されません。
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
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。
解説
GRANT OPTION で権限が許可されたプリンシパルから権限を取り消すときに CASCADE を指定しない場合、このステートメントは失敗します。
データベースは、セキュリティ保護可能なリソースで、権限の階層で親となっているサーバーに含まれています。次の表に、データベースで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
データベース権限 | 権限が含まれるデータベース権限 | 権限が含まれるサーバー権限 |
---|---|---|
ALTER |
CONTROL |
ALTER ANY DATABASE |
ALTER ANY APPLICATION ROLE |
ALTER |
CONTROL SERVER |
ALTER ANY ASSEMBLY |
ALTER |
CONTROL SERVER |
ALTER ANY ASYMMETRIC KEY |
ALTER |
CONTROL SERVER |
ALTER ANY CERTIFICATE |
ALTER |
CONTROL SERVER |
ALTER ANY CONTRACT |
ALTER |
CONTROL SERVER |
ALTER ANY DATABASE DDL TRIGGER |
ALTER |
CONTROL SERVER |
ALTER ANY DATABASE EVENT NOTIFICATION |
ALTER |
ALTER ANY EVENT NOTIFICATION |
ALTER ANY DATASPACE |
ALTER |
CONTROL SERVER |
ALTER ANY FULLTEXT CATALOG |
ALTER |
CONTROL SERVER |
ALTER ANY MESSAGE TYPE |
ALTER |
CONTROL SERVER |
ALTER ANY REMOTE SERVICE BINDING |
ALTER |
CONTROL SERVER |
ALTER ANY ROLE |
ALTER |
CONTROL SERVER |
ALTER ANY ROUTE |
ALTER |
CONTROL SERVER |
ALTER ANY SCHEMA |
ALTER |
CONTROL SERVER |
ALTER ANY SERVICE |
ALTER |
CONTROL SERVER |
ALTER ANY SYMMETRIC KEY |
ALTER |
CONTROL SERVER |
ALTER ANY USER |
ALTER |
CONTROL SERVER |
AUTHENTICATE |
CONTROL |
AUTHENTICATE SERVER |
BACKUP DATABASE |
CONTROL |
CONTROL SERVER |
BACKUP LOG |
CONTROL |
CONTROL SERVER |
CHECKPOINT |
CONTROL |
CONTROL SERVER |
CONNECT |
CONNECT REPLICATION |
CONTROL SERVER |
CONNECT REPLICATION |
CONTROL |
CONTROL SERVER |
CONTROL |
CONTROL |
CONTROL SERVER |
CREATE AGGREGATE |
ALTER |
CONTROL SERVER |
CREATE ASSEMBLY |
ALTER ANY ASSEMBLY |
CONTROL SERVER |
CREATE ASYMMETRIC KEY |
ALTER ANY ASYMMETRIC KEY |
CONTROL SERVER |
CREATE CERTIFICATE |
ALTER ANY CERTIFICATE |
CONTROL SERVER |
CREATE CONTRACT |
ALTER ANY CONTRACT |
CONTROL SERVER |
CREATE DATABASE |
CONTROL |
CREATE ANY DATABASE |
CREATE DATABASE DDL EVENT NOTIFICATION |
ALTER ANY DATABASE EVENT NOTIFICATION |
CREATE DDL EVENT NOTIFICATION |
CREATE DEFAULT |
ALTER |
CONTROL SERVER |
CREATE FULLTEXT CATALOG |
ALTER ANY FULLTEXT CATALOG |
CONTROL SERVER |
CREATE FUNCTION |
ALTER |
CONTROL SERVER |
CREATE MESSAGE TYPE |
ALTER ANY MESSAGE TYPE |
CONTROL SERVER |
CREATE PROCEDURE |
ALTER |
CONTROL SERVER |
CREATE QUEUE |
ALTER |
CONTROL SERVER |
CREATE REMOTE SERVICE BINDING |
ALTER ANY REMOTE SERVICE BINDING |
CONTROL SERVER |
CREATE ROLE |
ALTER ANY ROLE |
CONTROL SERVER |
CREATE ROUTE |
ALTER ANY ROUTE |
CONTROL SERVER |
CREATE RULE |
ALTER |
CONTROL SERVER |
CREATE SCHEMA |
ALTER ANY SCHEMA |
CONTROL SERVER |
CREATE SERVICE |
ALTER ANY SERVICE |
CONTROL SERVER |
CREATE SYMMETRIC KEY |
ALTER ANY SYMMETRIC KEY |
CONTROL SERVER |
CREATE SYNONYM |
ALTER |
CONTROL SERVER |
CREATE TABLE |
ALTER |
CONTROL SERVER |
CREATE TYPE |
ALTER |
CONTROL SERVER |
CREATE VIEW |
ALTER |
CONTROL SERVER |
CREATE XML SCHEMA COLLECTION |
ALTER |
CONTROL SERVER |
DELETE |
CONTROL |
CONTROL SERVER |
EXECUTE |
CONTROL |
CONTROL SERVER |
INSERT |
CONTROL |
CONTROL SERVER |
REFERENCES |
CONTROL |
CONTROL SERVER |
SELECT |
CONTROL |
CONTROL SERVER |
SHOWPLAN |
CONTROL |
ALTER TRACE |
SUBSCRIBE QUERY NOTIFICATIONS |
CONTROL |
CONTROL SERVER |
TAKE OWNERSHIP |
CONTROL |
CONTROL SERVER |
UPDATE |
CONTROL |
CONTROL SERVER |
VIEW DATABASE STATE |
CONTROL |
VIEW SERVER STATE |
VIEW DEFINITION |
CONTROL |
VIEW ANY DEFINITION |
権限
このステートメントを実行するプリンシパル (または AS オプションで指定したプリンシパル) には、データベースに対する CONTROL 権限、またはデータベースに対する CONTROL 権限を暗黙的に許可する上位レベルの権限が与えられている必要があります。
AS オプションを使用する場合、指定するプリンシパルはデータベースを所有している必要があります。
例
A. 証明書を作成する権限を取り消す
次の例では、AdventureWorks
データベースに対する CREATE CERTIFICATE
権限を、ユーザー MelanieK
から取り消します。
USE AdventureWorks;
REVOKE CREATE CERTIFICATE FROM MelanieK;
GO
B. REFERENCES 権限をアプリケーション ロールから取り消す
次の例では、AdventureWorks
データベースに対する REFERENCES
権限を、アプリケーション ロール AuditMonitor
から取り消します。
USE AdventureWorks;
REVOKE REFERENCES FROM AuditMonitor;
GO
C. CASCADE を指定して VIEW DEFINITION を取り消す
次の例では、AdventureWorks
データベースに対する VIEW DEFINITION
権限を、ユーザー CarmineEs
と、CarmineEs
が VIEW DEFINITION
権限を許可したすべてのプリンシパルから取り消します。
USE AdventureWorks;
REVOKE VIEW DEFINITION FROM CarmineEs CASCADE;
GO
参照
関連項目
sys.database_permissions (Transact-SQL)
sys.database_principals (Transact-SQL)
GRANT (データベースの権限の許可) (Transact-SQL)
DENY (データベースの権限の拒否) (Transact-SQL)