REVOKE <Berechtigungen> … FROM USER

Entfernt eine oder mehrere Berechtigungen für ein sicherungsfähiges Objekt von einem Benutzer. Die Berechtigungen, die entzogen werden können, sind objektspezifisch.

Siehe auch:

Syntax

REVOKE [ GRANT OPTION FOR ]
    {
       { globalPrivileges         | ALL [ PRIVILEGES ] } ON ACCOUNT
     | { accountObjectPrivileges  | ALL [ PRIVILEGES ] } ON { RESOURCE MONITOR | WAREHOUSE | COMPUTE POOL | DATABASE | INTEGRATION | CONNECTION | FAILOVER GROUP | REPLICATION GROUP | EXTERNAL VOLUME } <object_name>
     | { schemaPrivileges         | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
     | { schemaObjectPrivileges   | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN SCHEMA <schema_name> }
    }
  FROM [ USER ] <user_name> [ RESTRICT | CASCADE ]
Copy

Wobei:

globalPrivileges ::=
  {
      | ATTACH POLICY | AUDIT | BIND SERVICE ENDPOINT
      | APPLY {
         { AGGREGATION | AUTHENTICATION | JOIN | MASKING | PACKAGES | PASSWORD
           | PROJECTION | ROW ACCESS | SESSION } POLICY
         | TAG }
      | EXECUTE { ALERT | DATA METRIC FUNCTION | MANAGED ALERT | MANAGED TASK | TASK }
      | IMPORT SHARE
      | MANAGE { ACCOUNT SUPPORT CASES | EVENT SHARING | GRANTS | LISTING AUTO FULFILLMENT | ORGANIZATION SUPPORT CASES | USER SUPPORT CASES | WAREHOUSES }
      | MODIFY { LOG LEVEL | TRACE LEVEL | SESSION LOG LEVEL | SESSION TRACE LEVEL }
      | MONITOR { EXECUTION | SECURITY | USAGE }
      | OVERRIDE SHARE RESTRICTIONS | PURCHASE DATA EXCHANGE LISTING | RESOLVE ALL
      | READ SESSION
  }
  [ , ... ]
Copy
accountObjectPrivileges ::=
-- For COMPUTE POOL
   { MODIFY | MONITOR | OPERATE | USAGE } [ , ... ]
-- For CONNECTION
   { FAILOVER } [ , ... ]
-- For DATABASE
   { APPLYBUDGET
   | IMPORTED PRIVILEGES | MODIFY | MONITOR | USAGE } [ , ... ]
-- For EXTERNAL VOLUME
   { USAGE } [ , ... ]
-- For FAILOVER GROUP
   { FAILOVER | MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For INTEGRATION
   { USAGE | USE_ANY_ROLE } [ , ... ]
-- For REPLICATION GROUP
   { MODIFY | MONITOR | REPLICATE } [ , ... ]
-- For RESOURCE MONITOR
   { MODIFY | MONITOR } [ , ... ]
-- For USER
   { MONITOR } [ , ... ]
-- For WAREHOUSE
   { APPLYBUDGET | MODIFY | MONITOR | USAGE | OPERATE } [ , ... ]
Copy
schemaPrivileges ::=

    ADD SEARCH OPTIMIZATION | APPLYBUDGET
   | MODIFY | MONITOR | USAGE
   [ , ... ]
Copy
schemaObjectPrivileges ::=
  -- For ALERT
     { MONITOR | OPERATE } [ , ... ]
  -- For DATA METRIC FUNCTION
     USAGE [ , ... ]
  -- For DYNAMIC TABLE
     MONITOR, OPERATE, SELECT [ , ...]
  -- For EVENT TABLE
     { APPLYBUDGET | DELETE | REFERENCES | SELECT | TRUNCATE } [ , ... ]
  -- For FILE FORMAT, FUNCTION (UDF or external function), MODEL, PROCEDURE, SECRET, SEQUENCE, or SNAPSHOT
     USAGE [ , ... ]
  -- For GIT REPOSITORY
     { READ, WRITE } [ , ... ]
  -- For HYBRID TABLE
     { APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
  -- For IMAGE REPOSITORY
     { READ, WRITE } [ , ... ]
  -- For ICEBERG TABLE
     { APPLYBUDGET | DELETE | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
  -- For MATERIALIZED VIEW
     { APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
  -- For PIPE
     { APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
  -- For { AGGREGATION | AUTHENTICATION | MASKING | JOIN | PACKAGES | PASSWORD | PRIVACY | PROJECTION | ROW ACCESS | SESSION } POLICY or TAG
     APPLY [ , ... ]
  -- For SECRET
     { READ | USAGE } [ , ... ]
  -- For SEMANTIC VIEW
     REFERENCES [ , ... ]
  -- For SERVICE
     { MONITOR | OPERATE } [ , ... ]
  -- For external STAGE
     USAGE [ , ... ]
  -- For internal STAGE
     READ [ , WRITE ] [ , ... ]
  -- For STREAM
     SELECT [ , ... ]
  -- For STREAMLIT
     USAGE [ , ... ]
  -- For TABLE
     { APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
  -- For TAG
     READ
  -- For TASK
     { APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
  -- For VIEW
     { REFERENCES | SELECT } [ , ... ]
Copy

Weitere Informationen zu den Berechtigungen, die für jeden Objekttyp unterstützt werden, finden Sie unter Zugriffssteuerungsrechte.

Erforderliche Parameter

object_name

Gibt den Bezeichner für das Objekt an, dem die Berechtigungen entzogen werden.

object_type

Gibt den Typ des Objekts für Objekte auf Schemaebene an.

  • AGGREGATION POLICY

  • ALERT

  • AUTHENTICATION POLICY

  • CORTEX SEARCH SERVICE

  • DATA METRIC FUNCTION

  • DATASET

  • DYNAMIC TABLE

  • EVENT TABLE

  • EXTERNAL TABLE

  • FILE FORMAT

  • FUNCTION

  • GIT REPOSITORY

  • IMAGE REPOSITORY

  • ICEBERG TABLE

  • JOIN POLICY

  • MASKING POLICY

  • MATERIALIZED VIEW

  • MODEL

  • MODEL MONITOR

  • NETWORK RULE

  • NOTEBOOK

  • PACKAGES POLICY

  • PASSWORD POLICY

  • PIPE

  • PRIVACY POLICY

  • PROCEDURE

  • PROJECTION POLICY

  • ROW ACCESS POLICY

  • SECRET

  • SEMANTIC VIEW

  • SERVICE

  • SESSION POLICY

  • SEQUENCE

  • SNAPSHOT

  • STAGE

  • STREAM

  • STREAMLIT

  • TABLE

  • TAG

  • TASK

  • VIEW

object_type_plural

Pluralform von object_type (zum Beispiel TABLES, VIEWS).

user_name

Gibt den Bezeichner für den empfangenden Benutzer an (der Benutzer, dem die Berechtigungen entzogen werden).

Optionale Parameter

GRANT OPTION FOR

Entfernt, falls angegeben, die Möglichkeit, dass der empfangende Benutzer die Berechtigungen einer anderen Rolle oder einem anderen Benutzer erteilt.

Standard: Kein Wert

RESTRICT | CASCADE

Ermittelt, falls angegeben, ob die Widerrufsoperation für die Berechtigungen erfolgreich ist oder fehlschlägt, basierend darauf, ob die Berechtigungen einer anderen Rolle oder einem anderen Benutzer erneut erteilt wurden.

  • RESTRICT: Wenn die zu widerrufende Berechtigung einer anderen Rolle oder einem anderen Benutzer erneut erteilt wurde, schlägt der Befehl REVOKE fehl.

  • CASCADE: Wenn die zu widerrufende Berechtigung erneut erteilt wurde, widerruft der Befehl REVOKE diese abhängigen Berechtigungen rekursiv. Wenn dem Zielbenutzer von einem anderen Berechtigungsgeber (parallele Erteilung) die gleiche Berechtigung für ein Objekt erteilt wurde, ist diese Erteilung nicht betroffen und der Zielbenutzer behält die Berechtigung.

Standard: RESTRICT

Nutzungshinweise

  • Berechtigungen für beliebige Klassen können nicht direkt erteilt oder entzogen werden.

  • Eine Berechtigung kann einem Benutzer mehrfach von unterschiedlichen Berechtigungsgebern erteilt werden. Die Anweisung REVOKE privilege widerruft nur die Berechtigungszuweisungen, für die der Benutzer der Berechtigungsgeber ist. Jede weitere Berechtigungszuweisung einer bestimmten Berechtigung durch andere Berechtigungsgeber wird ignoriert.

    Beachten Sie auch, dass eine REVOKE privilege-Anweisung auch dann erfolgreich ist, wenn keine Berechtigungen entzogen werden. REVOKE privilege gibt nur dann einen Fehler zurück, wenn eine angegebene Berechtigung abhängige Berechtigungen hat und die CASCADE-Klausel in der Anweisung weggelassen wird.

  • Mehrere Berechtigungen für den gleichen Objekttyp können in einer einzigen GRANT-Anweisung angegeben werden (wobei jede Berechtigung durch Kommas getrennt wird). Alle anwendbaren Berechtigungen für den angegebenen Objekttyp können auch mit dem speziellen Schlüsselwort ALL [ PRIVILEGES ] erteilt werden. Beachten Sie jedoch, dass nur Berechtigungen, die die Rolle oder der Benutzer innehat und erteilen kann, die/der den Befehl GRANT ausführt, tatsächlich dem Zielbenutzer gewährt werden. Für alle Berechtigungen, die nicht zugewiesen werden konnten, wird eine Warnmeldung ausgegeben.

    Sie können das Schlüsselwort ALL [ PRIVILEGES ] nicht für Tags angeben.

  • Für Stagingbereiche:

    • USAGE gilt nur für externe Stagingbereiche.

    • READ | WRITE gilt nur für interne Stagingbereiche. Um die WRITE-Berechtigung für einen internen Stagingbereich erteilen zu können, muss zuerst die READ-Berechtigung für den Stagingbereich erteilt werden.

    Weitere Informationen zu externen und internen Stagingbereichen finden Sie unter CREATE STAGE.

  • Für Speicherintegrationen:

    • Um die folgenden Befehle über einen externen Stagingbereich auszuführen, der sich auf eine Speicherintegration stützt, muss dem Benutzer die Berechtigung USAGE für die Speicherintegration direkt gewährt werden oder er muss eine Rolle verwenden, die über diese Berechtigung verfügt oder sie erbt.

      Wenn Sie dem Benutzer die Berechtigung USAGE entziehen, kann der Benutzer diese Befehle nicht ausführen. Weitere Informationen dazu finden Sie unter Berechtigungen von Stagingbereichen.

    • Das Widerrufen der Berechtigung USAGE für eine Speicherintegration verhindert nicht, dass ein Benutzer externe Tabellen abfragt, die mit der Speicherintegration verbunden sind. Die Abfrage einer externen Tabelle erfordert nicht die Berechtigung USAGE für die zugrunde liegende Speicherintegration.

Anforderungen an die Zugriffssteuerung

Entziehen von Berechtigungen für einzelne Objekte:

Eine aktive Rolle oder ein Benutzer, die/der eines der folgenden Kriterien erfüllt, oder eine höhere Rolle kann verwendet werden, um Benutzern die Berechtigungen für ein Objekt zu entziehen:

  • Die Rolle oder der Benutzer wird in der GRANTED_BY-Spalte der Ausgabe von SHOW GRANTS als Berechtigungsgeber der Berechtigung identifiziert.

    Wenn für das angegebene Objekt mehrere Instanzen einer Berechtigung erteilt wurden, werden nur die von der aktiven Berechtigungsgeberrrolle erteilten Berechtigungsinstanzen entzogen.

  • Die Rolle oder der Benutzer hat die globale Berechtigung MANAGE GRANTS.

    Wenn für das angegebene Objekt mehrere Instanzen einer Berechtigung erteilt wurden, werden alle Berechtigungsinstanzen entzogen.

    Beachten Sie, dass nur die Systemrolle SECURITYADMIN und höhere Rollen standardmäßig über die Berechtigung MANAGE GRANTS verfügen. Die Berechtigung kann jedoch auch kundenspezifischen Rollen erteilt werden.

In verwalteten Zugriffsschemas (Schemas, die mit der Syntax CREATE SCHEMA ... WITH MANAGED ACCESS erstellt wurden) kann nur der Schemaeigentümer (die Rolle mit der Berechtigung OWNERSHIP für das Schema), eine Rolle oder ein Benutzer mit der globalen Berechtigung MANAGE GRANTS oder eine höhere Rolle Berechtigungen für Objekte im Schema widerrufen.

Beispiele

So entziehen Sie einem bestimmten Benutzer joe die Berechtigung USAGE für eine Streamlit-Anwendung:

REVOKE USAGE ON STREAMLIT streamlit_db.streamlit_schema.streamlit_app FROM USER joe;
Copy

So entziehen Sie einem bestimmten Benutzer user1 die Berechtigung USAGE für eine Prozedur:

REVOKE USAGE ON PROCEDURE mydb.myschema.myprocedure(number) FROM USER user1;
Copy