REVOKE <Berechtigungen> FROM APPLICATION ROLE¶
Entzieht einer Anwendungsrolle ein oder mehrere Zugriffsrechte auf ein sicherungsfähiges Objekt auf Schemaebene. Die Berechtigungen, die entzogen werden können, sind objektspezifisch.
Weitere Informationen zu Rollen und zu sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Syntax¶
Kontorollen:
REVOKE [ GRANT OPTION FOR ]
{
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { SCHEMA <schema_name> | ALL SCHEMAS IN DATABASE <db_name> }
| { schemaPrivileges | ALL [ PRIVILEGES ] } ON { FUTURE SCHEMAS IN DATABASE <db_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON { <object_type> <object_name> | ALL <object_type_plural> IN SCHEMA <schema_name> }
| { schemaObjectPrivileges | ALL [ PRIVILEGES ] } ON FUTURE <object_type_plural> IN { DATABASE <db_name> | SCHEMA <schema_name> }
}
FROM APPLICATION ROLE <name> [ RESTRICT | CASCADE ]
Wobei:
schemaObjectPrivileges ::=
-- For ALERT
{ MONITOR | OPERATE } [ , ... ]
-- For DYNAMIC TABLE
OPERATE, SELECT [ , ...]
-- For EVENT TABLE
{ INSERT | SELECT } [ , ... ]
-- For FILE FORMAT, FUNCTION (UDF or external function), PROCEDURE, SECRET, or SEQUENCE
USAGE [ , ... ]
-- For PIPE
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For { MASKING | PACKAGES | PASSWORD | ROW ACCESS | SESSION } POLICY or TAG
APPLY [ , ... ]
-- For SECRET
READ, USAGE [ , ... ]
-- For external STAGE
USAGE [ , ... ]
-- For internal STAGE
READ [ , WRITE ] [ , ... ]
-- For STREAM
SELECT [ , ... ]
-- For TABLE
{ APPLYBUDGET | DELETE | EVOLVE SCHEMA | INSERT | REFERENCES | SELECT | TRUNCATE | UPDATE } [ , ... ]
-- For TAG
READ
-- For TASK
{ APPLYBUDGET | MONITOR | OPERATE } [ , ... ]
-- For VIEW
{ REFERENCES | SELECT } [ , ... ]
-- For MATERIALIZED VIEW
{ APPLYBUDGET | REFERENCES | SELECT } [ , ... ]
Weitere Informationen zu den für jeden Objekttyp unterstützten Berechtigungen finden Sie unter Zugriffssteuerungsrechte.
Erforderliche Parameter¶
object_name
Gibt den Bezeichner für das Objekt an, für das die Berechtigungen vergeben werden.
object_type
Gibt den Typ des Objekts für Objekte auf Schemaebene an.
ALERT
DYNAMIC TABLE
EVENT TABLE
EXTERNAL TABLE
FILE FORMAT
FUNCTION
MASKING POLICY
MATERIALIZED VIEW
NETWORK RULE
PACKAGES POLICY
PASSWORD POLICY
PIPE
PROCEDURE
ROW ACCESS POLICY
SECRET
SESSION POLICY
SEQUENCE
STAGE
STREAM
TABLE
TAG
TASK
VIEW
object_type_plural
Pluralform von Objekttyp
object_type
(z. B.TABLES
,VIEWS
).Beachten Sie, dass die Massenerteilung von Berechtigungen auf Pipes nicht zulässig ist.
name
Gibt den Bezeichner für die Empfänger-Anwendungsrolle an (d. h. die Rolle, der die Berechtigungen erteilt werden).
Optionale Parameter¶
FUTURE
Wenn angegeben, werden nur Berechtigungen entfernt, die für neue (d. h. zukünftige) Schemaobjekte eines angegebenen Typs (z. B. Tabellen oder Ansichten) und nicht für vorhandene Objekte erteilt wurden. Beachten Sie, dass alle Berechtigungen für vorhandene Objekte beibehalten werden.
RESTRICT | CASCADE
Ermittelt, falls angegeben, ob die Operation zum Entziehen der Berechtigungen erfolgreich ist oder fehlschlägt, basierend darauf, ob die Berechtigungen einer anderen Anwendungsrolle erneut erteilt wurden.
RESTRICT
Wenn die entzogene Berechtigung einer anderen Anwendungsrolle erneut erteilt wurde, schlägt der Befehl REVOKE fehl.
CASCADE
Wenn die entzogene Berechtigung einer anderen Rolle erneut erteilt wurde, schlägt der Befehl REVOKE fehl. Wenn der Zielrolle von einem anderen Berechtigungsgeber (parallele Erteilung) die gleiche Berechtigung für ein Objekt erteilt wurde, ist diese Erteilung nicht betroffen und die Zielrolle behält die Berechtigung.
Standard:
RESTRICT
Sicherheitsanforderungen¶
- Entziehen von Berechtigungen für einzelne Objekte:
Um anderen Anwendungsrollen die Berechtigungen für ein Objekt zu entziehen, können Sie eine übergeordnete Rolle verwenden oder eine aktive Rolle, die eines der folgenden Kriterien erfüllt:
Die Rolle wird in der GRANTED_BY-Spalte der Ausgabe von SHOW GRANTS als Berechtigungsgeber de Berechtigung identifiziert.
Wenn Sie für das angegebene Objekt mehrere Instanzen einer Berechtigung erteilt haben, werden nur die von der aktiven Berechtigungsgeberrolle erteilten Berechtigungsinstanzen entzogen.
Die Rolle hat die globale Berechtigung MANAGE GRANTS.
Wenn Sie für das angegebene Objekt mehrere Instanzen einer Berechtigung erteilt haben, 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.
Die folgenden Rollen können Objekten in einem verwalteten Zugriffsschema (d. h. Schemas, die mit der Syntax CREATE SCHEMA … WITH MANAGED ACCESS erstellt wurden) Berechtigungen entziehen:
Die Anwendungsrolle, denn diese Rolle ist der Schemaeigentümer (d. h. sie hat die Berechtigung OWNERSHIP für das Schema).
Eine Rolle mit der globalen MANAGE GRANTS-Berechtigung.
- Entziehen von Berechtigungszuweisungen für zukünftige Objekte eines bestimmten Typs:
In verwalteten Zugriffsschemas kann entweder die Anwendungsrolle oder eine Rolle mit der globalen Berechtigung MANAGE GRANTS Berechtigungen für zukünftige Objekte des Schemas entziehen.
Bei Standardschemas ist die globale Berechtigung MANAGE GRANTS erforderlich, um Berechtigungen für zukünftige Objekte des Schemas zu entziehen.
Nutzungshinweise¶
Eine Berechtigung kann einer Anwendungsrolle mehrfach von unterschiedlichen Berechtigungsgebern erteilt werden. Eine REVOKE <Berechtigung>-Anweisung entzieht nur Berechtigungszuweisungen, bei denen die aktive Rolle oder eine niedrigere Rolle in einer Hierarchie der Berechtigungsgeber ist. Jede weitere Berechtigungszuweisung einer bestimmten Berechtigung durch andere Berechtigungsgeber wird ignoriert.
Eine REVOKE <Berechtigung>-Anweisung ist auch dann erfolgreich, wenn keine Berechtigungen entzogen werden. Eine REVOKE <Berechtigung>-Anweisung gibt nur dann einen Fehler zurück, wenn eine angegebene Berechtigung abhängige Berechtigungszuweisungen hat und in der Anweisung die CASCADE-Klausel fehlt.
Wenn Sie Berechtigungen für eine einzelne UDF entziehen, müssen Sie die Datentypen für die Argumente, falls vorhanden, für die UDF im Format
udf_name ( [ arg_data_type , ... ] )
angeben. Dies ist erforderlich, da Snowflake Argumentdatentypen zur Auflösung von UDFs verwendet, die innerhalb eines Schemas den gleichen Namen haben. Weitere Informationen dazu finden Sie unter Übersicht zu benutzerdefinierten Funktionen.Wenn Sie Berechtigungen für eine einzelne gespeicherte Prozedur entziehen, müssen Sie für die Prozedur die Datentypen für die Argumente, falls vorhanden, im Format
procedure_name ( [ arg_data_type , ... ] )
angeben. Dies ist erforderlich, da Snowflake Argumentdatentypen zur Auflösung von gespeicherten Prozeduren verwendet, die innerhalb eines Schemas den gleichen Namen haben.Zukünftige Berechtigungszuweisungen: Durch das Entziehen von zukünftige Berechtigungszuweisungen werden nur Zuweisungen von Berechtigungen für zukünftige Objekte eines bestimmten Typs gelöscht. Berechtigungen, die vorhandenen Objekten erteilt werden, bleiben erhalten.
Weitere Informationen dazu finden Sie unter verwaltete Zugriffsschemas.
Beispiel¶
Entziehen Sie einer Anwendungsrolle die SELECT-Berechtigung für eine Ansicht:
REVOKE SELECT ON VIEW data.views.credit_usage
FROM APPLICATION ROLE app_snowflake_credits;