CREATE DATABASE ROLE¶
Erstellt eine neue Datenbankrolle oder ersetzt eine bestehende Datenbankrolle im System.
Nach dem Erstellen einer Datenbankrolle können Sie der Datenbankrolle Objektberechtigungen zuweisen und die Datenbankrolle dann anderen Datenbankrollen oder Kontorollen zuweisen, um die Sicherheit der Zugriffssteuerung für Objekte im System zu ermöglichen.
Darüber hinaus unterstützt dieser Befehl die folgenden Varianten:
CREATE OR ALTER DATABASE ROLE: Erstellt eine neue Datenbankrolle, wenn sie nicht existiert, oder ändert eine bestehende Datenbankrolle.
Tipp
Neben SQL können Sie auch andere Weboberflächen verwenden, wie Snowflake REST APIs, Snowflake Python APIs und Snowflake CLI. Siehe Alternative Weboberflächen.
- Siehe auch:
GRANT <Berechtigungen>, GRANT DATABASE ROLE , GRANT OWNERSHIP , DROP DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES, CREATE <Objekt> … CLONE, CREATE OR ALTER <objekt>
Syntax¶
CREATE [ OR REPLACE ] DATABASE ROLE [ IF NOT EXISTS ] <name>
[ COMMENT = '<string_literal>' ]
Syntaxvariante¶
CREATE OR ALTER DATABASE ROLE¶
Erstellt eine neue Datenbankrolle, wenn sie noch nicht existiert, oder wandelt eine vorhandene Datenbankrolle in die in der Anweisung definierte Rolle um. Eine CREATE OR ALTER DATABASEROLE-Anweisung folgt den Syntaxregeln einer CREATEDATABASEROLE-Anweisung und hat die gleichen Einschränkungen wie eine ALTER DATABASE ROLE-Anweisung.
CREATE OR ALTER DATABASE ROLE <name>
[ COMMENT = '<string_literal>' ]
Weitere Informationen dazu finden Sie unter Nutzungshinweise zu CREATE OR ALTER DATABASEROLE.
Erforderliche Parameter¶
name
Gibt den Bezeichner (d. h. den Namen) der Datenbankrolle an. Dieser muss für die Datenbank, in der die Rolle erstellt wird, eindeutig sein.
Der Bezeichner muss mit einem alphabetischen Zeichen beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Wenn der Bezeichner nicht vollqualifiziert ist (im Format
db_name.database_role_name
), erstellt der Befehl die Datenbankrolle in der aktuellen Datenbank der Sitzung.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
Optionale Parameter¶
COMMENT = 'string_literal'
Gibt einen Kommentar für die Datenbankrolle an.
Standard: Kein Wert
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieser Operation verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
CREATE DATABASE ROLE |
Datenbank |
Eine Rolle mit der Berechtigung OWNERSHIP für die Datenbank kann einer anderen Kontorolle die Berechtigung CREATE DATABASE ROLE zuweisen. |
OWNERSHIP |
Datenbankrolle |
Erforderlich für die Ausführung einer CREATE OR ALTER DATABASE ROLE-Anweisung für eine vorhandene Datenbankrolle. 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). |
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einem bestimmten Satz 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.
Allgemeine Nutzungshinweise¶
Wenn Sie eine Datenbankrolle erstellen, wird der Datenbankrolle automatisch die USAGE-Berechtigung für die Datenbank zugewiesen, die die Datenbankrolle enthält.
Vorsicht
Vermeiden Sie das Neuerstellen einer Datenbankrolle (unter Verwendung der Schlüsselwörter OR REPLACE). Beim Neuerstellen eines Objekts wird im Hintergrund (unter Verwendung von CREATE OR REPLACE <Objekt>) das Objekt zunächst gelöscht und dann erstellt. Wenn Sie eine Datenbankrolle neu erstellen, wird die Datenbankrolle aus allen Freigaben gelöscht, die ihr zugewiesen sind. Sie müssen diesen Freigaben die Datenbankrolle dann erneut zuweisen.
Wenn Sie eine Datenbankrolle neu erstellen müssen, informieren Sie darüber alle Datenverbraucher einer Freigabe, die die Datenbankrolle enthält. Die Datenverbraucher müssen die Datenbankrolle dann ihren eigenen Kontorollen erneut zuweisen.
Hinweis zu Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Nutzungshinweise zu CREATE OR ALTER DATABASEROLE¶
Es gelten alle Einschränkungen des Befehls ALTER DATABASE ROLE.
Das Setzen oder Aufheben eines Tags wird nicht unterstützt. Bestehende Tags werden jedoch nicht durch eine CREATE OR ALTERDATABASEROLE-Anweisung verändert und bleiben unverändert.
Beispiele¶
Erstellen der Datenbankrolle dr1
in Datenbank d1
:
CREATE DATABASE ROLE d1.dr1;
Alternative Weboberflächen¶
Snowflake REST APIs
Snowflake Python APIs
Snowflake CLI
Nicht unterstützt