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>
Copy

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 von object_type, zum Beispiel TABLE oder WAREHOUSE.

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 oder WAREHOUSES.

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;
Copy

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;
Copy

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;
Copy

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;
Copy

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;
Copy