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.

Cette commande prend en charge les variantes suivantes :

  • CREATE OR ALTER DATABASE ROLE : crée un nouveau rôle de base de données s’il n’existe pas ou modifie un rôle de base de données existant.

Astuce

Outre SQL, vous pouvez également utiliser d’autres interfaces, telles que Snowflake REST APIs, Snowflake Python APIs et Snowflake CLI. Voir Interfaces alternatives.

Voir aussi :

GRANT <privilèges>, GRANT DATABASE ROLE , GRANT OWNERSHIP , DROP DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES, CREATE <objet> … CLONE, CREATE OR ALTER <objet>

Syntaxe

CREATE [ OR REPLACE ] DATABASE ROLE [ IF NOT EXISTS ] <name>
  [ COMMENT = '<string_literal>' ]
Copy

Syntaxe des variantes

CREATE OR ALTER DATABASE ROLE

Crée un nouveau rôle de base de données s’il n’existe pas encore ou transforme un rôle de base de données existant en un rôle défini dans l’instruction. Une instruction CREATE OR ALTER DATABASEROLE suit les règles syntaxiques d’une instruction CREATE DATABASEROLE et présente les mêmes limitations qu’une instruction ALTER DATABASE ROLE.

CREATE OR ALTER DATABASE ROLE <name>
  [ COMMENT = '<string_literal>' ]
Copy

Pour plus d’informations, voir Notes sur l’utilisation de CREATE OR ALTER DATABASEROLE.

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 opération doit au minimum disposer des privilèges suivants :

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.

OWNERSHIP

Rôle de la base de données

Obligatoire pour exécuter une instruction CREATE OR ALTER DATABASE ROLE pour un rôle de base de données existant.

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).

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 générales 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.

Notes sur l’utilisation de CREATE OR ALTER DATABASEROLE

  • Toutes les limitations de la commande ALTER DATABASE ROLE s’appliquent.

  • La définition ou l’annulation de la définition d’une balise n’est pas prise en charge ; toutefois, les balises existantes ne sont pas modifiées par une instruction CREATE OR ALTERDATABASEROLE et restent inchangées.

Exemples

Créer le rôle de base de données dr1 dans la base de données d1 :

CREATE DATABASE ROLE d1.dr1;
Copy

Interfaces alternatives