RevokeRevoke

REVOKE
  privilege_type [, privilege_type ] ...
  ON (CATALOG | DATABASE <database-name> | TABLE <table-name> | VIEW <view-name> | FUNCTION <function-name> | ANONYMOUS FUNCTION | ANY FILE)
  FROM principal

privilege_type
  : SELECT | CREATE | MODIFY | READ_METADATA | CREATE_NAMED_FUNCTION | ALL PRIVILEGES

principal
  : `<user>@<domain-name>` | <group-name>

オブジェクトに対して 明示的 に許可または拒否された特権をユーザーまたはプリンシパルから取り消します。Revoke an explicitly granted or denied privilege on an object from a user or principal. は、 REVOKE コマンドで指定されたオブジェクトに厳密にスコープが設定され、含まれているオブジェクトにはカスケードされません。A REVOKE is strictly scoped to the object specified in the command and does not cascade to contained objects.

すべてのユーザーから権限を取り消すには、の後にキーワードを指定し users FROM ます。To revoke a privilege from all users, specify the keyword users after FROM.

たとえば、テーブルとがあるデータベースがあるとし db t1 t2 ます。For example, suppose there is a database db with tables t1 and t2. ユーザーは、最初におよびに対する権限を許可され SELECT db t1 ます。A user is initially granted SELECT privileges on db and on t1. ユーザーは、データベースのによってにアクセスでき t2 GRANT db ます。The user can access t2 due to the GRANT on the database db.

管理者がの特権を取り消すと、ユーザーはにアクセスできなくなり SELECT db t2 ますが、 t1 テーブルに明示的なが存在するためにアクセス GRANT できます t1If the administrator revokes the SELECT privilege on db, the user will no longer be able to access t2, but will still be able to access t1 since there is an explicit GRANT on table t1.

代わりに、管理者がテーブルに対してを取り消すのに対し、データベース上のではテーブルに対する権限を暗黙的に使用するので、 SELECT t1 SELECT db ユーザーはにアクセスできます t1 SELECT db t1If the administrator instead revokes the SELECT on table t1 but still keeps the SELECT on database db, the user can still access t1 because the SELECT on the database db implicitly confers privileges on the table t1.

使用例Examples

REVOKE ALL PRIVILEGES ON DATABASE default FROM `<user>@<domain-name>`
REVOKE SELECT ON <table-name> FROM `<user>@<domain-name>`