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>

Widerrufen einer explizit gewährten oder verweigerten Berechtigung für ein Objekt von einem Benutzer oder Prinzipal.Revoke an explicitly granted or denied privilege on an object from a user or principal. Ein REVOKE ist streng auf das im-Befehl angegebene Objekt beschränkt und wird nicht in enthaltene Objekte kaskadiert.A REVOKE is strictly scoped to the object specified in the command and does not cascade to contained objects.

Geben Sie das Schlüsselwort nach an, um eine Berechtigung für alle Benutzer aufzuheben users FROM .To revoke a privilege from all users, specify the keyword users after FROM.

Nehmen wir beispielsweise an, dass eine Datenbank db mit Tabellen und vorhanden ist t1 t2 .For example, suppose there is a database db with tables t1 and t2. Einem Benutzer werden anfänglich SELECT Berechtigungen für db und erteilt t1 .A user is initially granted SELECT privileges on db and on t1. Der Benutzer kann t2 aufgrund der GRANT in der Datenbank auf zugreifen db .The user can access t2 due to the GRANT on the database db.

Wenn der Administrator die SELECT Berechtigung für widerruft db , kann der Benutzer nicht mehr auf zugreifen, kann t2 aber trotzdem auf zugreifen, t1 da es eine explizite GRANT Tabelle für Tabellen gibt t1 .If 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.

Wenn der Administrator stattdessen die on- SELECT Tabelle widerruft t1 , aber immer noch die SELECT on-Datenbank speichert db , kann der Benutzer weiterhin auf zugreifen, t1 da der SELECT in der Datenbank db implizit Berechtigungen für die Tabelle überträgt t1 .If 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.

BeispieleExamples

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