CREATE SECRET

Cria um novo segredo no esquema atual/especificado ou substitui um segredo existente.

Consulte também:

ALTER SECRET , DESCRIBE SECRET , DROP SECRET , SHOW SECRETS

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>' ]
Copy

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>' ]
Copy

Autenticação básica:

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = PASSWORD
    USERNAME = '<username>'
    PASSWORD = '<password>'
    [ COMMENT = '<string_literal>' ]
Copy

Cadeia de caracteres genérica:

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = GENERIC_STRING
    SECRET_STRING = '<string_literal>'
    [ COMMENT = '<string_literal>' ]
Copy

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 propriedade OAUTH_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 obrigatórios do OAuth com fluxo de concessão de código de autorização

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 o fluxo de concessão de OAuth.

OAUTH_REFRESH_TOKEN = 'string_literal'

Especifica o token como uma cadeia de caracteres que é usada para obter um novo token de acesso do servidor de autorização OAuth quando o token de acesso expira.

OAUTH_REFRESH_TOKEN_EXPIRY_TIME = 'string_literal'

Especifica o carimbo de data/hora como uma cadeia de caracteres quando o token de atualização do OAuth expira.

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.

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 como PASSWORD 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 como PASSWORD 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'
Copy

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;
Copy

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';
Copy