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 ]
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
}
[ , ... ]
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 } [ , ... ]
schemaPrivileges ::=
ADD SEARCH OPTIMIZATION | APPLYBUDGET
| MODIFY | MONITOR | USAGE
[ , ... ]
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 } [ , ... ]
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 BeispielTABLES
,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;
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;