CREATE DATABASE ROLE¶
Créez un nouveau rôle de base de données ou remplacez un rôle de base de données existant dans le système.
Après avoir créé les rôles de base de données, vous pouvez accorder des privilèges d’objet au rôle de base de données, puis accorder le rôle de base de données à d’autres rôles de base de données ou à des rôles de compte afin d’activer la sécurité du contrôle d’accès aux objets dans le système.
- Voir aussi :
GRANT <privilèges>, GRANT DATABASE ROLE , GRANT OWNERSHIP , DROP DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES, CREATE <objet> … CLONE
Syntaxe¶
CREATE [ OR REPLACE ] DATABASE ROLE [ IF NOT EXISTS ] <name>
[ COMMENT = '<string_literal>' ]
Paramètres requis¶
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 crée le rôle de base de données dans la base de données actuelle de la session.Pour plus de détails, voir Exigences relatives à l’identificateur.
Paramètres facultatifs¶
COMMENT = 'string_literal'
Spécifie un commentaire pour le rôle de base de données.
Par défaut : aucune valeur
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
CREATE DATABASE ROLE |
Base de données |
Un rôle doté du privilège OWNERSHIP sur la base de données peut accorder le privilège CREATE DATABASE ROLE à un autre rôle de compte. |
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Lorsque vous créez un rôle de base de données, le privilège USAGE sur la base de données qui contient le rôle de base de données est automatiquement accordé au rôle de base de données.
Prudence
Évitez de recréer un rôle de base de données (en utilisant les mots-clés OR REPLACE). En coulisses, la recréation d’un objet (en utilisant CREATE OR REPLACE <objet>) supprime d’abord l’objet, puis le crée. La recréation d’un rôle de base de données supprime le rôle de base de données de tous les partages auxquels il est accordé. Vous devez accorder à nouveau le rôle de base de données à ces partages.
Si vous devez recréer un rôle de base de données, notifiez tous les consommateurs de données d’un partage qui inclut le rôle de base de données. Ils doivent à nouveau accorder le rôle de base de données à leurs propres rôles de compte.
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
Créer le rôle de base de données dr1
dans la base de données d1
:
CREATE DATABASE ROLE d1.dr1;