Kategorien:

Systemfunktionen (Systeminformationen)

EXPLAIN_GRANTABLE_PRIVILEGES

Gibt eine JSON-Zeichenfolge zurück, die alle erteilten Berechtigungen für jeden Objekttyp in Snowflake darstellt. Diese Funktion bietet umfassende Informationen darüber, welche Berechtigungen für verschiedene Objekttypen erteilt werden können, einschließlich der verfügbaren Gewährungstypen für jede Berechtigung.

Siehe auch:

GRANT <Berechtigungen> … TO ROLE , GRANT CALLER ,

Syntax

EXPLAIN_GRANTABLE_PRIVILEGES(
  [ grantee => '<grantee_type>' ]
  [, object_type => '<object_type_name>' ]
  [, grant_type => '<grant_type_name>' ])

Argumente

Alle Argumente sind optional und verwenden die Syntax benannter Parameter:

grantee => 'grantee_type'

Filtern Sie die Ergebnisse nach Berechtigungsempfängertyp. Gültige Werte:

  • ROLE

  • APPLICATION

Standard: ROLE

Der Berechtigungsempfängertyp bestimmt, welche Berechtigungen verfügbar sind. So können Anwendungen beispielsweise keine individuelle Eigentümerschaft von Objekten haben.

object_type => 'object_type_name'

Filtern Sie die Ergebnisse nach einem einzigen Objekttyp. Akzeptiert die Singularform des Objekttypnamens (zum Beispiel 'DATABASE', 'TABLE', 'SCHEMA'). Beim Text wird nicht zwischen Groß- und Kleinschreibung unterschieden.

grant_type => 'grant_type_name'

Filtern Sie die Ergebnisse nach Berechtigungen, die einen bestimmten Gewährungstyp unterstützen. Gültige Werte:

Beim Text wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Rückgabewerte

Die Funktion gibt einen VARCHAR-Wert zurück, der ein JSON-Array enthält. Jedes Element in dem Array ist ein JSON-Objekt, das einen Objekttyp repräsentiert und die folgende Struktur aufweist:

{
  "parent": "<parent_object_type>",
  "singular": "<singular_name>",
  "plural": "<plural_name>",
  "privileges": {
    "<privilege_name>": ["<grant_type>", /* ... additional grant types */],
    /* ... additional privileges */
  }
}

JSON-Felder:

  • parent: Der Typ des übergeordneten Objekts in der Objekthierarchie (z. B. ist SCHEMA das übergeordnete Objekt von TABLE). Für Objekte der obersten Ebene, wie beispielsweise ACCOUNT, ist die Zeichenfolge leer.

  • singular: Die Singularform des Objekttypnamens (zum Beispiel DATABASE). Wird für einzelne Zuweisungen verwendet.

  • plural: Die Pluralform des Objekttypnamens (zum Beispiel DATABASES). Wird für die Massenerteilung von Berechtigungen verwendet.

  • privileges: Eine Zuordnung, bei der jeder Schlüssel ein Berechtigungsname ist und jeder Wert ein Array von Namen der Gewährungstypen ist, die angeben, wie diese Berechtigung erteilt werden kann.

Nutzungshinweise

  • Alle Argumente müssen konstante Ausdrücke sein. Sie können keine Spaltenwerte oder andere nicht konstante Ausdrücke übergeben.

  • Wenn keine Argumente angegeben werden, gibt die Funktion alle zuweisbaren Berechtigungen für Rollen für alle Objekttypen zurück.

Beispiele

Die folgenden Beispiele rufen die Funktion EXPLAIN_GRANTABLE_PRIVILEGES auf.

Alle zuweisbaren Berechtigungen für Rollen abrufen

Alle Objekttypen und deren zuweisbare Berechtigungen für Rollen zurückgeben:

CALL EXPLAIN_GRANTABLE_PRIVILEGES();

Berechtigungen für einen bestimmten Objekttyp abrufen

Nur die Berechtigungen für den 'DATABASE'-Objekttyp zurückgeben:

CALL EXPLAIN_GRANTABLE_PRIVILEGES(object_type => 'DATABASE');

Beispielausgabe:

[
  {
    "parent": "ACCOUNT",
    "singular": "DATABASE",
    "plural": "DATABASES",
    "privileges": {
      "APPLYBUDGET": ["ALL", "FUTURE", "INDIVIDUAL", "INHERITED"],
      "CREATE SCHEMA": ["INDIVIDUAL"],
      "IMPORTED PRIVILEGES": ["INDIVIDUAL"],
      "MODIFY": ["ALL", "FUTURE", "INDIVIDUAL", "INHERITED"],
      "MONITOR": ["ALL", "FUTURE", "INDIVIDUAL", "INHERITED"],
      "OWNERSHIP": ["INDIVIDUAL"],
      "REFERENCE_USAGE": ["ALL", "FUTURE", "INDIVIDUAL", "INHERITED"],
      "USAGE": ["ALL", "FUTURE", "INDIVIDUAL", "INHERITED"]
    }
  }
]

Filtern nach Berechtigungsempfängertyp

Rückgabe von Berechtigungen, die für Anwendungen verfügbar sind:

CALL EXPLAIN_GRANTABLE_PRIVILEGES(grantee => 'APPLICATION');

Anwendungen können nicht eine individuelle Eigentümerschaft haben. Folglich zeigt OWNERSHIP nur Gewährungstypen, wie beispielsweise 'ALL', 'FUTURE' und 'INHERITED', an.