DROP DATABASE ROLE

Supprime le rôle de base de données spécifié du système.

Voir aussi :

CREATE DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES

Syntaxe

DROP DATABASE ROLE [ IF EXISTS ] <name>
Copy

Paramètres

name

Spécifie l’identificateur (c’est-à-dire le nom) du rôle de la base de données ; il doit être unique dans la base de données dans laquelle le rôle est créé.

L’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (p. ex. "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Si l’identificateur n’est pas complet (sous la forme de db_name.database_role_name), la commande recherche le rôle de base de données dans la base de données actuelle de la session.

Notes sur l’utilisation

  • Les rôles de base de données détruits ne peuvent être récupérés ; ils doivent être recréés.

  • La propriété des objets appartenant au rôle de base de données détruit est transférée au rôle qui exécute la commande DROP DATABASE ROLE. Pour transférer la propriété de chacun de ces objets à un rôle de base de données différent, utilisez GRANT OWNERSHIP … COPY CURRENT GRANTS.

  • Si un rôle de base de données dispose d’un futur privilège en tant que concédant ou bénéficiaire, ce rôle de base de données ne peut être détruit que par un utilisateur disposant d’un rôle disposant du privilège MANAGE GRANTS.

  • Toutes les autorisations actuelles et futures qui désignent le rôle de base de données comme étant celui du concédant ou du bénéficiaire sont supprimées lorsque le rôle de base de données est détruit.

    Interrogez la vue Account Usage GRANTS_TO_ROLES pour récupérer les attributions de privilèges qui désignent un rôle de base de données spécifié en tant que concédant ou bénéficiaire :

    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

    L’exemple suivant récupère les attributions où d1.dr1 est le concédant ou le bénéficiaire :

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

Exemples

DROP DATABASE ROLE d1.dr1;
Copy