ALTER SECURITY INTEGRATION (Autenticação de API externa)

Modifica as propriedades de uma integração de segurança existente criada para autenticação de API externa.

Para obter mais informações sobre a modificação de outros tipos de integrações de segurança (por exemplo, Snowflake OAuth), consulte ALTER SECURITY INTEGRATION.

Consulte também:

CREATE SECURITY INTEGRATION (Autenticação de API externa) , DESCRIBE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS

Sintaxe

OAuth: credenciais do cliente

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'CLIENT_CREDENTIALS']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_ALLOWED_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}
Copy

OAuth: fluxo de concessão de código de autorização

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'AUTHORIZATION_CODE']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}
Copy

OAuth: fluxo do JWT bearer

ALTER SECURITY INTEGRATION <name> SET
  [ ENABLED = { TRUE | FALSE } ]
  [ OAUTH_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
  [ OAUTH_TOKEN_ENDPOINT = '<string_literal>' ]
  [ OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST ]
  [ OAUTH_CLIENT_ID = '<string_literal>' ]
  [ OAUTH_CLIENT_SECRET = '<string_literal>' ]
  [ OAUTH_GRANT = 'JWT_BEARER']
  [ OAUTH_ACCESS_TOKEN_VALIDITY = <integer> ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ COMMENT = '<string_literal>' ]

ALTER [ SECURITY ] INTEGRATION <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER [ SECURITY ] INTEGRATION <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED | [ , ... ]
}
Copy

Parâmetros

name

Cadeia de caracteres que especifica o identificador (ou seja, nome) da integração.

SET ...

Especifica uma ou mais propriedades/parâmetros a serem definidos para a integração (separados por espaços em branco, vírgulas ou novas linhas):

ENABLED = { TRUE | FALSE }

Especifica se esta integração de segurança está habilitada ou desabilitada.

TRUE

Permite que a integração funcione com base nos parâmetros especificados na definição da integração.

FALSE

Suspende a integração para manutenção. Qualquer integração entre o Snowflake e um serviço de terceiro não funciona.

OAUTH_AUTHORIZATION_ENDPOINT = 'string_literal'

Especifica o URL para autenticação ao serviço externo. Por exemplo, para conectar à instância do ServiceNow, o URL deve estar no seguinte formato:

https://<instance_name>.service-now.com/oauth_token.do
Copy

Onde instance_name é o nome de sua instância do ServiceNow.

OAUTH_TOKEN_ENDPOINT = 'string_literal'

Especifica o ponto de extremidade do token usado pelo cliente para obter um token de acesso apresentando sua concessão de autorização ou token de atualização. O ponto de extremidade do token é usado com todas as concessões de autorização, exceto para o tipo de concessão implícita (uma vez que um token de acesso é emitido diretamente).

OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST

Especifica que POST é usado como o método de autenticação para o serviço externo.

OAUTH_CLIENT_ID = 'string_literal'

Especifica o ID do cliente para o aplicativo OAuth no serviço externo.

OAUTH_CLIENT_SECRET = 'string_literal'

Especifica o segredo do cliente para o aplicativo OAuth na instância ServiceNow. O conector usa isto para solicitar um token de acesso da instância do ServiceNow.

OAUTH_GRANT = 'string_literal'

Especifica o tipo de fluxo de OAuth. Um dos seguintes:

  • 'CLIENT_CREDENTIALS' quando a integração usará credenciais do cliente.

  • 'AUTHORIZATION_CODE' quando a integração usará um código de autorização.

  • 'JWT_BEARER' quando a integração usará um token de portador do tipo JWT (JSON Web Token).

OAUTH_ACCESS_TOKEN_VALIDITY = integer

Especifica a vida útil padrão do token de acesso OAuth (em segundos) emitido por um servidor OAuth.

O valor definido nesta propriedade é usado se a vida útil do token de acesso não for devolvida como parte da resposta ao token OAuth. Quando os dois valores estiverem disponíveis, o menor valor será usado para atualizar o token de acesso.

OAUTH_REFRESH_TOKEN_VALIDITY = integer

Especifica o valor para determinar a validade do token de atualização obtido do servidor OAuth.

OAUTH_ALLOWED_SCOPES = ( list )

Especifica uma lista de escopos separada por vírgulas, com aspas simples em torno de cada escopo, a ser usada ao fazer uma solicitação do 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'.

Padrão: lista vazia (ou seja, []).

COMMENT = 'string_literal'

Adiciona um comentário ou substitui um comentário existente para a integraçã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 mais detalhes sobre como especificar tags em uma instrução, consulte Cotas de tags para objetos e colunas.

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

OWNERSHIP

Integração

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

  • 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

O exemplo a seguir inicia a operação de uma integração suspensa:

ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;
Copy