SHOW ROW ACCESS POLICIES

Listet die Zeilenzugriffsrichtlinien auf, für die Sie Zugriffsrechte haben. Gibt Informationen zurück, einschließlich Erstellungsdatum, Datenbank- und Schemanamen, Eigentümer und alle verfügbaren Kommentare.

Siehe auch:

DDL für Zeilenzugriffsrichtlinie

Syntax

SHOW ROW ACCESS POLICIES [ LIKE '<pattern>' ]
                         [ IN
                              {
                                ACCOUNT                  |

                                DATABASE                 |
                                DATABASE <database_name> |

                                SCHEMA                   |
                                SCHEMA <schema_name>     |
                                <schema_name>
                              }
                         ]

Parameter

LIKE 'pattern'

Filtert die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet eine Mustererkennung ohne Berücksichtigung der Groß-/Kleinschreibung, aber mit Unterstützung von SQL-Platzhalterzeichen (% und _).

Die folgenden Muster geben beispielsweise die gleichen Ergebnisse zurück:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
[ IN ... ]

Gibt optional den Geltungsbereich des Befehls an. Geben Sie eine der folgenden Optionen an:

ACCOUNT

Gibt Datensätze für das gesamte Konto zurück.

DATABASE, . DATABASE db_name

Gibt Datensätze für die aktuell verwendete Datenbank oder eine angegebene Datenbank (db_name) zurück.

Wenn Sie DATABASE ohne db_name angeben und aktuell keine Datenbank in Verwendung ist, hat das Schlüsselwort keine Auswirkungen auf die Ausgabe.

SCHEMA, . SCHEMA schema_name, . schema_name

Gibt Datensätze für das aktuell verwendete Schema oder ein angegebenes Schema (schema_name) zurück.

SCHEMA ist optional, wenn aktuell eine Datenbank in Verwendung ist oder wenn Sie für schema_name den vollqualifizierten Schemanamen (z. B. db.schema) angeben.

Wenn aktuell keine Datenbank in Verwendung ist, hat die Angabe von SCHEMA keine Auswirkungen auf die Ausgabe.

Standard: Abhängig davon, ob für die Sitzung aktuell eine Datenbank in Verwendung ist:

  • Datenbank: DATABASE ist der Standardwert (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in der Datenbank haben).

  • Keine Datenbank: ACCOUNT ist die Standardeinstellung (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in Ihrem Konto haben).

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens eine der folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

APPLY ROW ACCESS POLICY

Konto

APPLY

Zeilenzugriffsrichtlinie

OWNERSHIP

Zeilenzugriffsrichtlinie

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.

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 Zugriffssteuerung in Snowflake.

Weitere Informationen zur DDL und zu Berechtigungen von Zeilenzugriffsrichtlinien finden Sie unter Verwalten von Zeilenzugriffsrichtlinien.

Nutzungshinweise

  • Für die Ausführung des Befehls ist kein aktives Warehouse erforderlich.

  • Der Wert für LIMIT rows kann 10000 nicht überschreiten. Wenn LIMIT rows nicht angegeben wird und das Resultset mehr als 10.000 Zeilen hat, führt der Befehl zu einem Fehler.

    Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze vorhanden sind, fügen Sie entweder LIMIT rows (Zeilen) ein, oder fragen Sie die entsprechende Ansicht im Snowflake Information Schema ab.

  • Zur Nachbearbeitung der Ausgabe dieses Befehls können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.

Beispiele

Das folgende Beispiel ist repräsentativ für einen Benutzer mit der Rolle ACCOUNTADMIN, der die Abfrage ausführt.

show row access policies;

---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
          created_on             | name | database_name | schema_name |       kind        |    owner     | comment |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
Fri, 23 Jun 1967 00:00:00 -0700  | P1   | RLS_AUTHZ_DB  | S_D_1       | ROW_ACCESS_POLICY | ACCOUNTADMIN |         |
Fri, 23 Jun 1967 00:00:00 -0700  | P2   | RLS_AUTHZ_DB  | S_D_2       | ROW_ACCESS_POLICY | ACCOUNTADMIN |         |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+

Das folgende Beispiel ist repräsentativ für eine Rolle, die keine USAGE-Berechtigung für das übergeordneten Schema hat, in dem Zeilenzugriffsrichtlinien vorhanden sind, und die nicht die Rolle ACCOUNTADMIN ist.

show row access policies;

---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
          created_on             | name | database_name | schema_name |       kind        |    owner     | comment |
---------------------------------+------+---------------+-------------+-------------------+--------------+---------+
Zurück zum Anfang