DROP DATABASE ROLE

Entfernt die angegebene Datenbankrolle aus dem System.

Siehe auch:

CREATE DATABASE ROLE, ALTER DATABASE ROLE, SHOW DATABASE ROLES

Syntax

DROP DATABASE ROLE [ IF EXISTS ] <name>
Copy

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), sucht der Befehl die Datenbankrolle in der aktuellen Datenbank der Sitzung.

Nutzungshinweise

  • Entfernte Datenbankrollen können nicht wiederhergestellt werden, sondern müssen neu erstellt werden.

  • Die Eigentümerschaft an allen Objekten, die der gelöschten Datenbankrolle gehören, wird auf die Rolle übertragen, die den Befehl DROP DATABASEROLE ausführt. Um die Eigentümerschaft an jedem dieser Objekte auf eine andere Datenbankrolle zu übertragen, verwenden Sie GRANT OWNERSHIP … COPY CURRENT GRANTS.

  • Wenn eine Datenbankrolle eine zukünftige Berechtigung als Berechtigungsgeber oder Berechtigungsempfänger hat, kann die Datenbankrolle nur von einem Benutzer gelöscht werden, dem eine Rolle mit MANAGE GRANTS-Berechtigung zugewiesen ist.

  • Alle aktuellen und zukünftigen Berechtigungszuweisungen, bei denen die Datenbankrolle entweder als Berechtigungsgeber oder Berechtigungsempfänger benannt ist, werden beim Löschen der Datenbankrolle entfernt.

    Abfragen der Account Usage-Ansicht GRANTS_TO_ROLES, um die Berechtigungen abzurufen, bei denen eine bestimmte Datenbankrolle als Berechtigungsgeber oder Berechtigungsempfänger angegeben ist:

    SELECT *
      FROM snowflake.account_usage.grants_to_roles
      WHERE grantee_name = upper('<database_name>.<db_role_name>') OR granted_by = upper('<database_name>.<db_role_name>');
    
    Copy

    Im folgenden Beispiel werden die Berechtigungen abgerufen, bei denen d1.dr1 der Berechtigungsgeber oder Berechtigungsempfänger ist:

    SELECT *
      FROM snowflake.account_usage.grants_to_roles
      WHERE grantee_name = upper('d1.dr1') OR granted_by = upper('d1.dr1');
    
    Copy

Beispiele

DROP DATABASE ROLE d1.dr1;
Copy