ALTER SECURITY INTEGRATION (OAuth externo)

Modifica as propriedades de uma integração de segurança existente criada para OAuth externo. 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 (OAuth externo) , DROP INTEGRATION , SHOW INTEGRATIONS , DESCRIBE INTEGRATION

Sintaxe

ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET
  [ TYPE = EXTERNAL_OAUTH ]
  [ ENABLED = { TRUE | FALSE } ]
  [ EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM } ]
  [ EXTERNAL_OAUTH_ISSUER = '<string_literal>' ]
  [ EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>' | ('<string_literal>', '<string_literal>' [ , ... ] ) ]
  [ EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS' ]
  [ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ] -- For OKTA | PING_FEDERATE | CUSTOM
  [ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' | ('<string_literal>' [ , '<string_literal>' ... ] ) ] -- For Azure
  [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ]
  [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ]
  [ EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ]
  [ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ]
  [ EXTERNAL_OAUTH_ANY_ROLE_MODE = DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ]
  [ EXTERNAL_OAUTH_SCOPE_DELIMITER = '<string_literal>' ] -- Only for EXTERNAL_OAUTH_TYPE = CUSTOM
  [ COMMENT = '<string_literal>' ]

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

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

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

Parâmetros

name

Identificador da integração a ser alterada. Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

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):

TYPE = EXTERNAL_OAUTH

Distingue a integração de OAuth externo de uma integração de OAuth Snowflake.

ENABLED = { TRUE | FALSE }

Especifica se deve iniciar a operação da integração ou suspendê-la.

  • TRUE permite que a integração funcione com base nos parâmetros especificados na definição do canal.

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

EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM }

Especifica o servidor de autorização OAuth 2.0 a ser Okta, Microsoft Azure AD, Ping Identity PingFederate ou um servidor de autorização personalizado OAuth 2.0.

EXTERNAL_OAUTH_ISSUER = 'string_literal'

Especifica o URL para definir o servidor de autorização OAuth 2.0.

EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = { 'string_literal' | ('string_literal', 'string_literal' [ , ... ] ) }

Especifica declarações de token de acesso ou declarações que podem ser usadas para mapear o token de acesso para um registro de usuário Snowflake.

O tipo de dados da declaração deve ser uma cadeia de caracteres ou uma lista de cadeias de caracteres.

EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME | EMAIL_ADDRESS' }

Indica qual atributo de registro de usuário Snowflake deve ser usado para mapear o token de acesso a um registro de usuário Snowflake.

EXTERNAL_OAUTH_JWS_KEYS_URL = 'string_literal'

Especifica o ponto de extremidade a partir dos quais deve-se baixar chaves ou certificados públicos para validar um token de acesso do OAuth externo.

Esta sintaxe se aplica às integrações de segurança em que EXTERNAL_OAUTH_TYPE = { OKTA | PING_FEDERATE | CUSTOM }

EXTERNAL_OAUTH_JWS_KEYS_URL = { 'string_literal' | ('string_literal' [ , 'string_literal' ... ] ) }

Especifica o ponto de extremidade ou uma lista de pontos de extremidade a partir dos quais baixar chaves ou certificados públicos para validar um token de acesso External OAuth. O número máximo de URLs que pode ser especificado na lista é 3.

Esta sintaxe se aplica às integrações de segurança em que EXTERNAL_OAUTH_TYPE = AZURE

EXTERNAL_OAUTH_RSA_PUBLIC_KEY = public_key1

Especifica uma chave pública RSA com codificação de Base64, sem os cabeçalhos -----BEGIN PUBLIC KEY----- e -----END PUBLIC KEY-----.

EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = public_key2

Especifica uma segunda chave pública RSA, sem os cabeçalhos -----BEGIN PUBLIC KEY----- e -----END PUBLIC KEY-----. Utilizado para rotação de chaves.

EXTERNAL_OAUTH_BLOCKED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] )

Especifica a lista de funções que um cliente não pode definir como uma função primária. Uma função nesta lista não pode ser usada ao criar uma sessão do Snowflake baseada no token de acesso do servidor de autorização do OAuth externo.

Por padrão, esta lista inclui as funções ACCOUNTADMIN, ORGADMIN e SECURITYADMIN. Para remover estas funções privilegiadas da lista, use o comando ALTER ACCOUNT para definir o parâmetro de conta EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST como FALSE.

EXTERNAL_OAUTH_ALLOWED_ROLES_LIST = ( 'role_name' [ , 'role_name' , ... ] )

Especifica a lista de funções que o cliente pode definir como a função primária.

Uma função nesta lista não ser usada ao criar uma sessão do Snowflake baseada no token de acesso do servidor de autorização do OAuth externo.

Cuidado

Este parâmetro oferece suporte às funções do sistema ACCOUNTADMIN, ORGADMIN e SECURITYADMIN.

Tenha cuidado ao criar uma sessão de Snowflake com estas funções altamente privilegiadas definidas como a função primária.

EXTERNAL_OAUTH_AUDIENCE_LIST = ('string_literal')

Especifica valores adicionais que podem ser usados para a validação do token de acesso ao público além de usar a conta Snowflake do cliente URL (ou seja, <identificador_conta>.snowflakecomputing.com). Para obter mais informações, consulte Identificadores de conta.

Para obter mais detalhes sobre esta propriedade ao usar o Power BI SSO, consulte as integração de segurança do Power BI SSO.

Atualmente, múltiplos URLs de audiência podem ser especificados para clientes personalizados do OAuth externo somente. Cada URL deve ser delimitado por aspas simples, com uma vírgula separando cada URL. Por exemplo:

external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
Copy
EXTERNAL_OAUTH_ANY_ROLE_MODE = { DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE }

Especifica se o cliente ou usuário de OAuth pode usar uma função que não esteja definida no token de acesso do OAuth. Observe que, com uma integração do Power BI com o Snowflake, o usuário do PowerBI não pode mudar de função mesmo quando este parâmetro está habilitado.

  • DISABLE não permite que o cliente OAuth ou usuário troque de funções (ou seja, USE ROLE role;). Padrão.

  • ENABLE permite que o cliente OAuth ou usuário troque de função.

  • ENABLE_FOR_PRIVILEGE permite que o cliente OAuth ou usuário troque de função somente para um cliente ou usuário com o privilégio USE_ANY_ROLE. Este privilégio pode ser concedido e revogado para uma ou mais funções disponíveis para o usuário. Por exemplo:

    GRANT USE_ANY_ROLE ON INTEGRATION external_oauth_1 TO role1;
    
    Copy
    REVOKE USE_ANY_ROLE ON INTEGRATION external_oauth_1 FROM role1;
    
    Copy

Observe que o valor pode ser opcionalmente delimitado por aspas simples (por exemplo, DISABLE ou 'DISABLE').

EXTERNAL_OAUTH_SCOPE_DELIMITER = 'string_literal'

Especifica o delimitador de escopo no token de autorização.

O delimitador pode ser qualquer caractere individual, como vírgula (',') ou espaço (' ').

Esta propriedade de integração de segurança é opcional e pode ser usada para anular o delimitador de vírgula padrão. Note que esta propriedade só é suportada para integrações personalizadas do OAuth externo, onde:

EXTERNAL_OAUTH_TYPE = CUSTOM

Contate o suporte Snowflake para ativar esta propriedade em sua conta Snowflake.

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.

UNSET ...

Especifica uma ou mais propriedades/parâmetros a serem desativados para a integração de segurança, o que os restaura aos seus padrões:

  • ENABLED

  • EXTERNAL_OAUTH_AUDIENCE_LIST

  • TAG tag_name [ , tag_name ... ]

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