DROP ROLE

Entfernt die angegebene Rolle aus dem System.

Siehe auch:

CREATE ROLE, ALTER ROLE, SHOW ROLES

Syntax

DROP ROLE [ IF EXISTS ] <name>
Copy

Parameter

name

Gibt den Bezeichner für die zu entfernende Rolle an. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

Nutzungshinweise

  • Gelöschte Rollen können nicht wiederhergestellt werden, sie müssen neu erstellt werden.

  • Eine Rolle kann nicht gelöscht werden, wenn sie die OWNERSHIP-Berechtigung für eine freigegebene Datenbank hat. Verwenden Sie zuerst den Befehl GRANT OWNERSHIP, um die OWNERSHIP-Berechtigung für die freigegebene Datenbank zu übertragen, und löschen Sie dann die Rolle.

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

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

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

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

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

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

    SELECT *
      FROM snowflake.account_usage.grants_to_roles
      WHERE grantee_name = upper('myrole') OR granted_by = upper('myrole');
    
    Copy
  • Wenn eine Rolle Berechtigungsgeber von Rollen an Benutzer ist, werden beim Löschen der Rolle die Berechtigungen automatisch wieder entzogen.

Beispiele

DROP ROLE myrole;
Copy