REVOKE (データベース プリンシパルの権限の取り消し) (Transact-SQL)
データベース ユーザー、データベース ロール、アプリケーション ロールに対して許可または拒否された権限を取り消します。
構文
REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]
ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
{ FROM | TO } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<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
データベース プリンシパルで取り消すことのできる権限を指定します。 権限の一覧については、後の「解説」を参照してください。USER ::database_user
権限を取り消すユーザーのクラスと名前を指定します。 スコープ修飾子 (::) が必要です。ROLE ::database_role
権限を取り消すロールのクラスと名前を指定します。 スコープ修飾子 (::) が必要です。APPLICATION ROLE ::application_role
権限を取り消すアプリケーション ロールのクラスと名前を指定します。 スコープ修飾子 (::) が必要です。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
対応するサーバー レベルのプリンシパルがないデータベース ユーザーを指定します。
説明
データベース ユーザー権限
データベース ユーザーは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次の表に、データベース ユーザーで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
データベース ユーザー権限 |
権限が含まれるデータベース ユーザー権限 |
権限が含まれるデータベース権限 |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
IMPERSONATE |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY USER |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
データベース ロール権限
データベース ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次の表に、データベース ロールで取り消すことができる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
データベース ロール権限 |
権限が含まれるデータベース ロール権限 |
権限が含まれるデータベース権限 |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY ROLE |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
アプリケーション ロール権限
アプリケーション ロールは、データベース レベルのセキュリティ保護可能なリソースで、権限の階層で親となっているデータベースに含まれています。 次の表に、アプリケーション ロールで取り消すことのできる権限のうち最も限定的なものを、それらを暗黙的に含む一般的な権限と共に示します。
アプリケーション ロール権限 |
権限が含まれるアプリケーション ロール権限 |
権限が含まれるデータベース権限 |
---|---|---|
CONTROL |
CONTROL |
CONTROL |
ALTER |
CONTROL |
ALTER ANY APPLICATION ROLE |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
権限
指定したプリンシパルに対する CONTROL 権限、または CONTROL 権限を暗黙的に含む上位の権限が必要です。
db_owner 固定データベース ロールのメンバーなど、データベースに対する CONTROL 権限が許可されているユーザーは、データベース内のセキュリティ保護可能なリソースに対する権限を許可できます。
使用例
A. ユーザーに対する CONTROL 権限を別のユーザーから取り消す
次の例では、 AdventureWorks2012 ユーザー Wanida に対する CONTROL 権限を、ユーザー RolandX から取り消します。
USE AdventureWorks2012;
REVOKE CONTROL ON USER::Wanida FROM RolandX;
GO
B. ロールに対する VIEW DEFINITION 権限を、WITH GRANT OPTION で権限が許可されたユーザーから取り消す
次の例では、 AdventureWorks2012 ロール SammamishParking に対する VIEW DEFINITION 権限を、データベース ユーザー JinghaoLiu から取り消します。 JinghaoLiu には、WITH GRANT OPTION を指定して VIEW DEFINITION 権限が許可されているため、CASCADE オプションを指定します。
USE AdventureWorks2012;
REVOKE VIEW DEFINITION ON ROLE::SammamishParking
FROM JinghaoLiu CASCADE;
GO
C. ユーザーに対する IMPERSONATE 権限をアプリケーション ロールから取り消す
次の例では、ユーザー HamithaL に対する IMPERSONATE 権限を、 AdventureWorks2012 アプリケーション ロール AccountsPayable17 から取り消します。
USE AdventureWorks2012;
REVOKE IMPERSONATE ON USER::HamithaL FROM AccountsPayable17;
GO
関連項目
参照
GRANT (データベース プリンシパルの権限の許可) (Transact-SQL)
DENY (データベース プリンシパルの権限の拒否) (Transact-SQL)
sys.database_principals (Transact-SQL)
sys.database_permissions (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)