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.

Esse comando é compatível com as seguintes variantes:

  • CREATE OR ALTER DATABASE ROLE: cria uma nova função de banco de dados se ela não existir ou altera uma função de banco de dados existente.

Dica

Além do SQL, você também pode usar outras interfaces, como Snowflake REST APIs, Snowflake Python APIs e Snowflake CLI. Consulte Interfaces alternativas.

Consulte também:

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

Sintaxe

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

Sintaxe da variante

CREATE OR ALTER DATABASE ROLE

Cria uma nova função de banco de dados, se ela ainda não existir, ou transforma uma função de banco de dados existente na função definida na instrução. Uma instrução CREATE OR ALTER DATABASE ROLE segue as regras de sintaxe de uma instrução CREATE DATABASE ROLE e tem as mesmas limitações de uma instrução ALTER DATABASE ROLE.

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

Para obter mais informações, consulte Notas de uso CREATE OR ALTER DATABASE ROLE.

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

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

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.

OWNERSHIP

Função de banco de dados

Necessário para executar uma instrução CREATE OR ALTER DATABASE ROLE para uma função de banco de dados existente.

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

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 geral

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

Notas de uso CREATE OR ALTER DATABASE ROLE

  • Todas as limitações do comando ALTER DATABASE ROLE se aplicam.

  • Não há suporte para a definição ou remoção da definição de uma tag; no entanto, as tags existentes não são alteradas por uma instrução CREATE OR ALTER DATABASE ROLE e permanecem inalteradas.

Exemplos

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

CREATE DATABASE ROLE d1.dr1;
Copy

Interfaces alternativas