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>' ]
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>' ]
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;
Interfaces alternativas¶
Snowflake REST APIs
Ponto de extremidade de criação de uma função de banco de dados
Ponto de extremidade de criação de uma nova função de banco de dados clonando a partir do recurso especificado
Snowflake Python APIs
Snowflake CLI
Sem suporte