CREATE ROLE¶
Criar uma nova função ou substituir uma função existente no sistema.
Após criar funções, você pode conceder privilégios de objeto à função e depois conceder a função a outras funções ou usuários individuais para permitir a segurança do controle de acesso para objetos no sistema.
Esse comando é compatível com as seguintes variantes:
CREATE OR ALTER ROLE: cria uma função se ela não existir ou altera uma função existente.
- Consulte também:
GRANT <privilégios>, GRANT ROLE , GRANT OWNERSHIP , DROP ROLE , ALTER ROLE , SHOW ROLES
Sintaxe¶
CREATE [ OR REPLACE ] ROLE [ IF NOT EXISTS ] <name>
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Sintaxe da variante¶
CREATE OR ALTER ROLE¶
Cria uma nova função, se ela ainda não existir, ou transforma uma função existente na função definida na instrução. Uma instrução CREATE OR ALTER ROLE segue as regras de sintaxe de uma instrução CREATE ROLE e tem as mesmas limitações de uma instrução ALTER ROLE.
CREATE OR ALTER ROLE <name>
[ COMMENT = '<string_literal>' ]
Para obter mais informações, consulte Notas de uso de CREATE OR ALTER ROLE.
Parâmetros obrigatórios¶
name
Identificador para a função; deve ser único para sua conta.
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.Para obter mais detalhes, consulte Requisitos para identificadores.
Parâmetros opcionais¶
COMMENT = 'string_literal'
Especifica um comentário para a função.
Padrão: sem valor
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
Especifica o nome da tag e o valor da cadeia de caracteres dela.
O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.
Para obter informações sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.
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 ROLE |
Conta |
Only the USERADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed. |
OWNERSHIP |
Função de banco de dados |
Necessário para executar uma instrução CREATE OR ALTER ROLE para uma função 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¶
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.
Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.
Notas de uso de CREATE OR ALTER ROLE¶
Todas as limitações do comando ALTER 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 ROLE e permanecem inalteradas.
Exemplos¶
CREATE ROLE myrole;