SHOW GRANTS

Listet alle Zugriffssteuerungsrechte auf, die Rollen, Benutzern und Freigaben explizit erteilt wurden. Weitere Informationen zu Berechtigungen und Rollen finden Sie unter Zugriffssteuerung in Snowflake. Weitere Informationen zu Freigaben finden Sie unter Einführung in Secure Data Sharing.

Bemerkung

SHOW GRANTS ist eine spezielle Variante, die eine andere Syntax als alle anderen SHOW <Objekte>-Befehle verwendet.

Syntax

SHOW GRANTS

SHOW GRANTS ON ACCOUNT

SHOW GRANTS ON <object_type> <object_name>

SHOW GRANTS TO { ROLE <role_name> | USER <user_name> | SHARE <share_name> }

SHOW GRANTS OF ROLE <role_name>

SHOW GRANTS OF SHARE <share_name>

SHOW FUTURE GRANTS IN SCHEMA { <schema_name> }

SHOW FUTURE GRANTS IN DATABASE { <database_name> }

SHOW FUTURE GRANTS TO ROLE <role_name>

Varianten

SHOW GRANTS

Syntaktisch äquivalent zu SHOW GRANTS TO USER current_user. Listet alle dem aktuellen Benutzer zugewiesenen Rollen auf.

SHOW GRANTS ON ...

ACCOUNT

Listet alle Berechtigungen auf Kontoebene (d. h. globale Berechtigungen) auf, die Rollen erteilt wurden.

object_type object_name

Listet alle Berechtigungen auf, die dem Objekt erteilt wurden.

SHOW GRANTS TO ...

ROLE role_name

Listet alle Berechtigungen und Rollen auf, die der Rolle erteilt wurden.

USER user_name

Listet alle dem Benutzer erteilten Rollen auf. Beachten Sie, dass die Rolle PUBLIC, die automatisch für jeden Benutzer verfügbar ist, nicht aufgeführt ist.

SHARE share_name

Listet alle der Freigabe erteilten Berechtigungen auf.

SHOW GRANTS OF...

ROLE role_name

Listet alle Benutzer und Rollen auf, denen die Rolle zugewiesen wurde.

SHARE share_name

Listet alle Konten für die Freigabe auf und gibt die Konten an, die die Freigabe verwenden.

SHOW FUTURE GRANTS IN ...

SCHEMA database_name.schema_name

Listet für neue (d. h. zukünftige) Objekte eines angegebenen Typs im Schema alle Berechtigungen auf, die einer Rolle erteilt wurden. database_name. gibt die Datenbank an, in der sich das Schema befindet. Die Angabe ist optional, wenn sich das abgefragte Schema in der aktuellen Datenbank befindet.

DATABASE database_name

Listet für neue (d. h. zukünftige) Objekte eines angegebenen Typs in der Datenbank alle Berechtigungen auf, die einer Rolle erteilt wurden.

SHOW FUTURE GRANTS TO ROLE role_name

Listet alle Berechtigungen für neue (d. h. zukünftige) Objekte eines bestimmten Typs in einer Datenbank oder einem Schema auf, die der Rolle erteilt werden.

Nutzungshinweise

  • Die Spalte GRANTED_BY gibt die Rolle an, die eine Berechtigungszuweisung an den Berechtigungsempfänger autorisiert hat. Die Autorisierungsrolle wird als Berechtigungsgeber bezeichnet.

    Wenn Sie einer Rolle unter Verwendung von GRANT <Berechtigungen> Berechtigungen für ein Objekt erteilen, bestimmen die folgenden Autorisierungsregeln, welche Rolle als Berechtigungsgeber der Berechtigungen aufgeführt wird:

    1. Wenn eine aktive Rolle der Objekteigentümer (d. h. mit OWNERSHIP-Berechtigung für das Objekt) ist, ist diese Rolle der Berechtigungsgeber.

    2. Wenn eine aktive Rolle über die angegebene Berechtigung mit autorisierter Zuweisungsoption verfügt (d. h. die Berechtigung wurde der aktiven Rolle mit der Option GRANT <Berechtigungen> … TO ROLE <Rollenname> WITH GRANT OPTION erteilt, wobei <Rollenname> eine der aktiven Rollen ist), dann ist die Rolle, die über die Berechtigung mit autorisierter Zuweisungsoption verfügt, der Berechtigungsgeber. Wenn mehrere aktive Rollen dieses Kriterium erfüllen, ist es nicht deterministisch, welche der Rollen zur Berechtigungsgeber-Rolle wird.

    3. Wenn eine aktive Rolle über die globale Berechtigung MANAGE GRANTS verfügt, ist die Berechtigungsgeber-Rolle der Objekteigentümer und nicht die Rolle, die über die MANAGE GRANTS-Berechtigung verfügte. Das heißt, die MANAGE GRANTS-Berechtigung erlaubt es einer Rolle, die Objekteigentümerschaft zu übernehmen, um Berechtigungen für dieses Objekt zu erteilen.

    Wenn die Spalte GRANTED_BY leer ist, wurde die Berechtigung von der Snowflake-Rolle SYSTEM erteilt. Mit dieser Rolle werden bestimmte interne Operationen ausgeführt. Die von der Rolle SYSTEM autorisierten Berechtigungen können von Kunden nicht geändert werden.

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

  • Der Befehl gibt maximal 10.000 Datensätze für den angegebenen Objekttyp zurück, wie durch die Zugriffsrechte für die Rolle vorgegeben, die zur Ausführung des Befehls verwendet wird. Datensätze, die über dem Limit von 10.000 liegen, werden nicht zurückgegeben, selbst wenn ein Filter angewendet wird.

    Um Ergebnisse anzuzeigen, für die mehr als 10.000 Datensätze existieren, fragen Sie die entsprechende Ansicht (falls vorhanden) in der Datei Snowflake Information Schema ab.

  • Um die Ausgabe dieses Befehls nachzubearbeiten, können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.

Beispiele

Listen Sie alle Berechtigungen auf, die der sales-Datenbank erteilt wurden:

SHOW GRANTS ON DATABASE sales;

+---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------+
| created_on                      | privilege | granted_on | name       | granted_to | grantee_name | grant_option | granted_by   |
|---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------|
| Thu, 07 Jul 2016 05:22:29 -0700 | OWNERSHIP | DATABASE   | REALESTATE | ROLE       | ACCOUNTADMIN | true         | ACCOUNTADMIN |
| Thu, 07 Jul 2016 12:14:12 -0700 | USAGE     | DATABASE   | REALESTATE | ROLE       | PUBLIC       | false        | ACCOUNTADMIN |
+---------------------------------+-----------+------------+------------+------------+--------------+--------------+--------------+

Listen Sie alle Berechtigungen auf, die der analyst-Rolle erteilt wurden:

SHOW GRANTS TO ROLE analyst;

+---------------------------------+------------------+------------+------------+------------+--------------+------------+
| created_on                      | privilege        | granted_on | name       | granted_to | grant_option | granted_by |
|---------------------------------+------------------+------------+------------+------------+--------------+------------+
| Wed, 17 Dec 2014 18:19:37 -0800 | CREATE WAREHOUSE | ACCOUNT    | DEMOENV    | ANALYST    | false        | SYSADMIN   |
+---------------------------------+------------------+------------+------------+------------+--------------+------------+

Listen Sie alle dem Benutzer demo zugewiesenen Rollen auf:

SHOW GRANTS TO USER demo;

+---------------------------------+------+------------+-------+---------------+
| created_on                      | role | granted_to | name  | granted_by    |
|---------------------------------+------+------------+-------+---------------+
| Wed, 31 Dec 1969 16:00:00 -0800 | DBA  | USER       | DEMO  | SECURITYADMIN |
+---------------------------------+------+------------+-------+---------------+

Listen Sie alle Rollen und Benutzer auf, denen die Rolle analyst zugewiesen wurde:

SHOW GRANTS OF ROLE analyst;

+---------------------------------+---------+------------+--------------+---------------+
| created_on                      | role    | granted_to | grantee_name | granted_by    |
|---------------------------------+---------+------------+--------------+---------------|
| Tue, 05 Jul 2016 16:16:34 -0700 | ANALYST | ROLE       | ANALYST_US   | SECURITYADMIN |
| Tue, 05 Jul 2016 16:16:34 -0700 | ANALYST | ROLE       | DBA          | SECURITYADMIN |
| Fri, 08 Jul 2016 10:21:30 -0700 | ANALYST | USER       | JOESM        | SECURITYADMIN |
+---------------------------------+---------+------------+--------------+---------------+

Listen Sie alle Berechtigungen auf, die zukünftigen Objekten im Schema sales.public erteilt werden:

SHOW FUTURE GRANTS IN SCHEMA sales.public;

+-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------+
| created_on                    | privilege | grant_on | name                      | grant_to | grantee_name          | grant_option |
|-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------|
| 2018-12-21 09:22:26.946 -0800 | INSERT    | TABLE    | SALES.PUBLIC.<TABLE>      | ROLE     | ROLE1                 | false        |
| 2018-12-21 09:22:26.946 -0800 | SELECT    | TABLE    | SALES.PUBLIC.<TABLE>      | ROLE     | ROLE1                 | false        |
+-------------------------------+-----------+----------+---------------------------+----------+-----------------------+--------------+
Zurück zum Anfang