GRANT CALLER¶
Gewährt einer Rolle Aufruferberechtigungen. Wenn eine ausführbare Datei, die dieser Rolle gehört, mit eingeschränkten Aufruferrechten ausgeführt wird, kann sie nur mit den Berechtigungen des Aufrufers ausgeführt werden, die in den Aufruferberechtigungen angegeben sind.
Variationen des Befehls GRANT CALLER sind wie folgt:
GRANT CALLER — Gewährt Aufruferberechtigungen für ein bestimmtes Objekt. Jede durch die Anweisung erzeugte Aufruferberechtigung erlaubt der ausführbaren Datei, mit einer bestimmten Berechtigung ausgeführt zu werden.
GRANT ALL CALLER PRIVILEGES — Gewährt Aufruferberechtigungen für ein bestimmtes Objekt. Die durch die Anweisung erzeugten Aufruferberechtigungen erlauben der ausführbaren Datei, mit allen Berechtigungen des Aufrufers zu laufen.
GRANT INHERITED CALLER — Gewährt Aufruferberechtigungen für alle aktuellen und zukünftigen Objekte desselben Typs, wenn sie ein gemeinsames Schema, eine Datenbank oder ein Konto haben. Jede durch die Anweisung erzeugte Aufruferberechtigung erlaubt der ausführbaren Datei, mit einer bestimmten Berechtigung ausgeführt zu werden.
GRANT ALL INHERITED CALLER PRIVILEGES — Gewährt Aufruferberechtigungen für alle aktuellen und zukünftigen Objekte desselben Typs, wenn sie ein gemeinsames Schema, eine Datenbank oder ein Konto haben. Die durch die Anweisung erzeugten Aufruferberechtigungen erlauben der ausführbaren Datei, mit allen Berechtigungen des Aufrufers zu laufen.
Syntax¶
GRANT CALLER <object_privilege> [ , <object_privilege> ... ]
ON <object_type> <object_name>
TO { ROLE | DATABASE ROLE } <grantee_name>
GRANT ALL CALLER PRIVILEGES
ON <object_type> <object_name>
TO { ROLE | DATABASE ROLE } <grantee_name>
GRANT INHERITED CALLER <object_privilege> [ , <object_privilege> ... ]
ON ALL <object_type_plural>
IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
TO { ROLE | DATABASE ROLE } <grantee_name>
GRANT ALL INHERITED CALLER PRIVILEGES
ON ALL <object_type_plural>
IN { ACCOUNT | DATABASE <db_name> | SCHEMA <schema_name> | APPLICATION <app_name> | APPLICATION PACKAGE <app_pkg_name> }
TO { ROLE | DATABASE ROLE } <grantee_name>
Parameter¶
object_privilege [ , object_privilege ... ]
Die Objektberechtigungen, mit denen ausführbare Dateien ausgeführt werden können. Eine Liste der Berechtigungen für einen bestimmten Objekttyp finden Sie unter Zugriffssteuerungsrechte.
Verwenden Sie eine durch Kommas getrennte Liste, um mehr als eine Objektberechtigung anzugeben.
ON object_type object_name
Ermöglicht die Ausführung einer ausführbaren Datei mit den angegebenen
object_privilege
, wenn auf das angegebene Objekt (object_name
) zugegriffen wird. Verwenden Sie die Singularform vonobject_type
, zum BeispielTABLE
oderWAREHOUSE
.ON ALL object_type_plural IN ACCOUNT
oder .ON ALL object_type_pluarl IN DATABASE db_name
oder .ON ALL object_type_plural IN SCHEMA schema_name
oder .ON ALL object_type_plural IN APPLICATION app_name
oder .ON ALL object_type_plural IN APPLICATION PACKAGE app_pkg_name
Ermöglicht die Ausführung einer ausführbaren Datei mit Berechtigungen auf Objektebene, wenn auf ein Objekt des angegebenen Typs zugegriffen wird. Verwenden Sie die Pluralform des Objekttyps, zum Beispiel
TABLES
oderWAREHOUSES
.Mit der GRANT-Anweisung können Sie den Zugriff auf alle Objekte im aktuellen Konto oder nur auf Objekte in der/dem angegebenen Datenbank, Schema, Anwendung oder Anwendungspaket steuern.
TO ROLE grantee_name
oder .TO DATABASE ROLE grantee_name
Eigentümer der ausführbaren Dateien, die Sie mit Aufruferberechtigungen schützen möchten.
Wenn Sie eine Datenbankrolle angeben, sind die Berechtigungen auf Objekte in derselben Datenbank wie die Datenbankrolle beschränkt.
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
MANAGE CALLER GRANTS |
Konto |
Die Berechtigung MANAGE CALLER GRANTS auf Kontoebene bezieht sich nur auf Auruferberechtigungen. Sie erlaubt Ihnen nicht, Berechtigungen für Rollen zu vergeben. |
Jede Berechtigung |
Alle angegebenen Objekte |
Sie benötigen mindestens eine Berechtigung für die in der Aufruferberechtigung angegebenen Objekte. Die Gewährung einer Auruferberechtigung für eine Tabelle erfordert beispielsweise, dass Sie mindestens eine Berechtigung für diese Tabelle haben. |
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Beispiele¶
Ausführbare Dateien, die owner_role
gehören und auf eine Ansicht v1
zugreifen, können mit der SELECT-Berechtigung auf der Ansicht ausgeführt werden:
GRANT CALLER SELECT ON VIEW v1 TO owner_role;
Ausführbare Dateien, die owner_role
gehören und auf eine Tabelle im db.sch
-Schema zugreifen, können mit den Berechtigungen SELECT und INSERT des Aufrufers ausgeführt werden.
GRANT INHERITED CALLER SELECT, INSERT ON ALL TABLES IN SCHEMA db.sch TO ROLE owner_role;
Ausführbare Dateien, die owner_role
gehören und auf Schemas im aktuellen Konto zugreifen, können mit allen Aufruferberechtigungen auf den Schemas ausgeführt werden.
GRANT ALL INHERITED CALLER PRIVILEGES ON ALL SCHEMAS IN ACCOUNT TO ROLE owner_role;
Ausführbare Dateien, die der Datenbankrolle db.r
gehören und auf die Tabelle db.sch1.t1
zugreifen, können mit der SELECT-Berechtigung in der Tabelle ausgeführt werden.
GRANT CALLER SELECT ON TABLE db.sch1.t1 TO DATABASE ROLE db.r;
Ausführbare Dateien, die owner_role
gehören und auf die Datenbank my_db
zugreifen, können mit allen Aufruferberechtigungen auf der Datenbank ausgeführt werden.
GRANT ALL CALLER PRIVILEGES ON DATABASE my_db TO ROLE owner_role;