CREATE SECRET¶
Cria um novo segredo no esquema atual/especificado ou substitui um segredo existente.
- Consulte também:
Sintaxe¶
OAuth com fluxo de credenciais do cliente:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 API_AUTHENTICATION = <security_integration_name> OAUTH_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) [ COMMENT = '<string_literal>' ]
OAuth com fluxo de concessão de código de autorização:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '<string_literal>' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '<string_literal>' API_AUTHENTICATION = <security_integration_name>; [ COMMENT = '<string_literal>' ]
Autenticação básica:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = PASSWORD USERNAME = '<username>' PASSWORD = '<password>' [ COMMENT = '<string_literal>' ]
Cadeia de caracteres genérica:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = GENERIC_STRING SECRET_STRING = '<string_literal>' [ COMMENT = '<string_literal>' ]
Parâmetros obrigatórios do OAuth com fluxo de credenciais de clientes¶
name
Cadeia de caracteres que especifica o identificador (ou seja, nome) do segredo; deve ser única em seu esquema.
Além disso, 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.
TYPE = OAUTH2
Especifica um segredo a ser usado com um fluxo de concessão de OAuth.
API_AUTHENTICATION = security_integration_name
Especifica o valor
name
da integração de segurança do Snowflake que conecta o Snowflake a um serviço externo.OAUTH_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )
Especifica uma lista separada por vírgulas dos escopos a serem usados ao fazer uma solicitação do servidor OAuth por uma função com USAGE na integração durante o fluxo de credenciais do cliente OAuth.
Esta lista deve ser um subconjunto dos escopos definidos na propriedade
OAUTH_ALLOWED_SCOPES
da integração de segurança. Se os valores de propriedadeOAUTH_SCOPES
não forem especificados, o segredo herdará todos os escopos que são especificados na integração de segurança.Para o conector ServiceNow, o único valor de escopo possível é
'useraccount'
.
Parâmetros requeridos da autenticação básica¶
name
Cadeia de caracteres que especifica o identificador (ou seja, nome) do segredo; deve ser única em seu esquema.
Além disso, 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.
TYPE = PASSWORD
Especifica um segredo a ser usado com autenticação básica.
Ao especificar este tipo, você deve especificar valores para as propriedades do nome de usuário e senha.
USERNAME = 'username'
Especifica o valor do nome de usuário a ser armazenado no segredo.
Especifique este valor ao definir o valor
TYPE
comoPASSWORD
para uso com autenticação básica.PASSWORD = 'password'
Especifica o valor da senha a ser armazenada no segredo.
Especifique este valor ao definir o valor
TYPE
comoPASSWORD
para uso com autenticação básica.
Parâmetros da cadeia de caracteres genérica¶
name
Cadeia de caracteres que especifica o identificador (ou seja, nome) do segredo; deve ser única em seu esquema.
Além disso, 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.
TYPE = GENERIC_STRING
Especifica um segredo para armazenar um valor de cadeia de caracteres confidencial.
SECRET_STRING = 'string_literal'
Especifica a cadeia de caracteres a ser armazenada no segredo.
A cadeia de caracteres pode ser um token API ou uma cadeia de caracteres de valor confidencial que pode ser usada no código do manipulador de uma UDF ou procedimento armazenado. Para obter mais detalhes, consulte Criação e uso de uma integração de acesso externo.
Você não deve usar esta propriedade para armazenar qualquer tipo de token OAuth; use um dos outros tipos de segredo para seus casos de uso OAuth.
Parâmetros opcionais¶
COMMENT = 'string_literal'
Cadeia de caracteres (literal) que especifica um comentário para o segredo.
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 SECRET |
Esquema |
Observe que operar em qualquer objeto de um esquema também requer o privilégio USAGE no banco de dados e esquema principais.
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¶
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¶
Criar um segredo para uso com o fluxo de credenciais do cliente OAuth:
CREATE OR REPLACE SECRET mysecret TYPE = OAUTH2 API_AUTHENTICATION = mysecurityintegration OAUTH_SCOPES = ('useraccount') COMMENT = 'secret for the service now connector'
Criar um segredo para uso com o fluxo de concessão de código OAuth:
CREATE SECRET service_now_creds_oauth_code TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00' API_AUTHENTICATION = sn_oauth;
Criar um segredo que especifique um nome de usuário e uma senha para acessar ServiceNow:
CREATE SECRET service_now_creds_pw TYPE = password USERNAME = 'jsmith1' PASSWORD = 'W3dr@fg*7B1c4j';