CREATE DATABASE ROLE

Crie uma nova função de banco de dados ou substitua uma função de banco de dados existente no sistema.

Após criar funções de banco de dados, você pode conceder privilégios de objeto à função de banco de dados e depois conceder a função de banco de dados a outras funções de banco de dados ou funções de conta para permitir a segurança do controle de acesso para objetos no sistema.

Consulte também:

GRANT <privilégios>, GRANT DATABASE ROLE , GRANT OWNERSHIP , DROP DATABASE ROLE , ALTER DATABASE ROLE , SHOW DATABASE ROLES, CREATE <objeto> … CLONE

Sintaxe

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

Parâmetros obrigatórios

name

Especifica o identificador (ou seja, nome) para a função do banco de dados; deve ser único no banco de dados no qual a função é criada.

O identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Se o identificador não estiver totalmente qualificado na forma de db_name.database_role_name, o comando criará a função do banco de dados no banco de dados atual para a sessão.

Para obter mais detalhes, consulte Requisitos para identificadores.

Parâmetros opcionais

COMMENT = 'string_literal'

Especifica um comentário para a função de banco de dados.

Padrão: sem valor

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

CREATE DATABASE ROLE

Banco de dados

Uma função com o privilégio OWNERSHIP no banco de dados pode conceder o privilégio CREATE DATABASE ROLE a outra função de conta.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Ao criar uma função do banco de dados, o privilégio USAGE no banco de dados que contém a função do banco de dados é concedido automaticamente à função do banco de dados.

Cuidado

Evite recriar uma função de banco de dados (usando as palavras-chave OR REPLACE). Nos bastidores, a recriação de um objeto (usando CREATE OR REPLACE <objeto>) primeiro descarta e depois cria o objeto. A recriação de uma função de banco de dados descarta uma função de banco de dados de qualquer compartilhamento ao qual ela seja concedida. Você deve conceder novamente a função de banco de dados a esses compartilhamentos.

Se você tiver que recriar uma função de banco de dados, notifique qualquer consumidor de dados de um compartilhamento que inclua a função de banco de dados. Eles devem conceder novamente a função de banco de dados a suas próprias funções de conta.

Em relação aos metadados:

Atenção

Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Exemplos

Crie a função de banco de dados dr1 no banco de dados d1:

CREATE DATABASE ROLE d1.dr1;
Copy