SHOW ROLES¶
Listet alle Rollen auf, für die Sie Zugriffsrechte für Ihr gesamtes Konto haben, einschließlich der vom System definierten Rollen und aller kundenspezifischen Rollen, die erstellt wurden.
Wichtig
Mit Snowflake können Benutzer Rollen auflisten. Die Möglichkeit, Rollen aufzulisten, ist jedoch nicht mit der Verwendung einer Rolle identisch. Wenn Sie die Namen der Rollen kennen, ist kein zusätzlicher Zugriff möglich.
Dies ist Teil der besitzerverwaltete Zugriffssteuerung und der rollenbasierten Zugriffssteuerung. Weitere Informationen dazu finden Sie unter Übersicht zur Zugriffssteuerung.
- Siehe auch:
Syntax¶
SHOW [ TERSE ] ROLES
[ LIKE '<pattern>' ]
[ IN CLASS <class_name> ]
[ STARTS WITH '<name_string>']
[ LIMIT <rows> [ FROM '<name_string>' ] ]
Parameter¶
TERSE
Gibt nur eine Teilmenge der Spalten zurück:
is_default
Gibt an, ob die zur Ausführung des Befehls verwendete Rolle die Standardrolle des Benutzers ist.
is_current
Gibt an, ob die zur Ausführung des Befehls verwendete Rolle die aktuelle Rolle des Benutzers ist.
is_inherited
Gibt an, ob die Rolle, mit der der Befehl ausgeführt wird, die angegebene Rolle erbt.
LIKE 'pattern'
Filtert optional die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet einen Musterabgleich 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%' ...
. Standard: Kein Wert (die Ausgabe wird nicht gefiltert).
IN CLASS class_name
Gibt Datensätze für die angegebene Klasse zurück (
class_name
).
STARTS WITH 'name_string'
Filtert die Befehlsausgabe optional anhand der Zeichen, die am Anfang des Objektnamens angezeigt werden. Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.
Die folgenden Zeichenfolgen geben beispielsweise unterschiedliche Ergebnisse zurück:
... STARTS WITH 'B' ...
... STARTS WITH 'b' ...
. Standard: Kein Wert (die Ausgabe wird nicht gefiltert)
LIMIT rows [ FROM 'name_string' ]
Schränkt optional die maximale Anzahl der zurückgegebenen Zeilen ein und ermöglicht gleichzeitig die „Paginierung“ der Ergebnisse. Die tatsächliche Anzahl der zurückgegebenen Zeilen kann geringer sein als das angegebene Limit. Beispielsweise ist die Anzahl der vorhandenen Objekte geringer als das angegebene Limit.
Die optionale Unterklausel
FROM 'name_string'
dient als „Cursor“ für die Ergebnisse. Dies ermöglicht das Abrufen der angegebenen Anzahl von Zeilen nach der ersten Zeile, deren Objektname mit der angegebenen Zeichenfolge übereinstimmt:Die Zeichenfolge muss in einfache Anführungszeichen gesetzt werden, wobei zwischen Groß-/Kleinschreibung unterschieden wird.
Die Zeichenfolge muss nicht den vollständigen Datenbanknamen enthalten. Partielle Namen werden unterstützt.
Standard: Kein Wert (die Ausgabe wird nicht begrenzt)
Bemerkung
Bei SHOW-Befehlen, die sowohl die
FROM 'name_string'
- als auch dieSTARTS WITH 'name_string'
-Klausel unterstützen, können Sie diese beiden Klauseln in derselben Anweisung kombinieren. Beide Bedingungen müssen jedoch erfüllt sein, da sie sich sonst gegenseitig aufheben und keine Ergebnisse zurückgegeben werden.Außerdem werden Objekte in lexikographischer Reihenfolge nach Namen zurückgegeben. Daher gibt
FROM 'name_string'
nur Zeilen mit einem höheren lexikografischen Wert zurück als die vonSTARTS WITH 'name_string'
zurückgegebenen Zeilen.Beispiel:
... STARTS WITH 'A' LIMIT ... FROM 'B'
würde keine Ergebnisse zurückgeben.... STARTS WITH 'B' LIMIT ... FROM 'A'
würde keine Ergebnisse zurückgeben.... STARTS WITH 'A' LIMIT ... FROM 'AB'
würde Ergebnisse zurückgeben (wenn Zeilen mit den Eingabezeichenfolgen übereinstimmen).
Nutzungshinweise¶
Für die Ausführung des Befehl ist kein aktives Warehouse erforderlich.
Um die Ausgabe dieses Befehls nachzubearbeiten, können Sie die Funktion RESULT_SCAN verwenden, die die Ausgabe wie eine abfragbare Tabelle behandelt.
Wenn Sie
CLASS
angeben, werden nur die folgenden Spalten zurückgegeben:| created_on | name | comment |
Beispiele¶
Alle Rollen anzeigen:
SHOW ROLES;---------------------------------+---------------+------------+------------+--------------+-------------------+------------------+---------------+---------------+--------------------------+ created_on | name | is_default | is_current | is_inherited | assigned_to_users | granted_to_roles | granted_roles | owner | comment | ---------------------------------+---------------+------------+------------+--------------+-------------------+------------------+---------------+---------------+--------------------------+ Fri, 05 Dec 2014 16:25:06 -0800 | ACCOUNTADMIN | Y | Y | N | 1 | 0 | 2 | | | Mon, 15 Dec 2014 17:58:33 -0800 | ANALYST | N | N | N | 0 | 6 | 0 | SECURITYADMIN | Data analyst | Fri, 05 Dec 2014 16:25:06 -0800 | PUBLIC | N | N | Y | 0 | 0 | 0 | | | Fri, 05 Dec 2014 16:25:06 -0800 | SECURITYADMIN | N | N | Y | 0 | 1 | 0 | | | Fri, 05 Dec 2014 16:25:06 -0800 | SYSADMIN | N | N | Y | 5 | 1 | 2 | | | ---------------------------------+---------------+------------+------------+--------------+-------------------+------------------+---------------+---------------+--------------------------+
In diesem Beispiel:
Die systemdefinierte Rolle ACCOUNTADMIN ist die aktuelle Rolle und Standardrolle für den aktuellen (d. h. angemeldeten) Benutzer.
Zusätzlich zu den vier vom System definierten Rollen wurde eine kundenspezifische Rolle (ANALYST) erstellt. Die Rolle gehört der systemdefinierten Rolle SECURITYADMIN.
Gibt bis zu zehn Kontorollen im Konto nach der ersten Rolle namens my_role2
zurück:
SHOW ROLES LIMIT 10 FROM 'my_role2';