ALTER STORAGE INTEGRATION

Modifica as propriedades para uma integração de armazenamento existente.

Consulte também:

CREATE STORAGE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS , DESCRIBE INTEGRATION

Sintaxe

ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET
  [ cloudProviderParams ]
  [ ENABLED = { TRUE | FALSE } ]
  [ STORAGE_ALLOWED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
  [ STORAGE_BLOCKED_LOCATIONS = ('<cloud>://<bucket>/<path>/' [ , '<cloud>://<bucket>/<path>/' ... ] ) ]
  [ COMMENT = '<string_literal>' ]

ALTER [ STORAGE ] INTEGRATION [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

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

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

Onde:

cloudProviderParams (for Amazon S3) ::=
  STORAGE_AWS_ROLE_ARN = '<iam_role>'
  [ STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control' ]
  [ STORAGE_AWS_EXTERNAL_ID = '<external_id>' ]
Copy
cloudProviderParams (for Microsoft Azure) ::=
  AZURE_TENANT_ID = '<tenant_id>'
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 tabela (separados por espaços em branco, vírgulas ou novas linhas):

ENABLED = TRUE | FALSE

Especifica se esta integração de armazenamento está disponível para uso em estágios.

  • TRUE permite que os usuários criem novos estágios que fazem referência a esta integração. Os estágios existentes que fazem referência a esta função de integração normalmente.

  • FALSE impede que os usuários criem novos estágios que referenciem esta integração. Os estágios existentes que fazem referência a esta integração não podem acessar o local de armazenamento na definição do estágio.

STORAGE_ALLOWED_LOCATIONS = ('cloud_specific_url')

Limita explicitamente os estágios externos que utilizam a integração para referenciar um ou mais locais de armazenamento (Amazon S3, Google Cloud Storage ou Microsoft Azure). Oferece suporte a uma lista separada por vírgula de URLs para buckets existentes e, opcionalmente, caminhos usados para armazenar arquivos de dados para carregamento/descarregamento. Como alternativa, oferece suporte ao curinga *, que significa “permitir o acesso a todos os buckets e/ou caminhos”.

Observe que se o valor STORAGE_ALLOWED_LOCATIONS incluir um local de armazenamento específico, todos os subcaminhos no mesmo local deverão ser permitidos. Nenhum subcaminho pode ser incluído em um valor STORAGE_BLOCKED_LOCATIONS. Por exemplo, se STORAGE_ALLOWED_LOCATIONS inclui storage_location/, então STORAGE_BLOCKED_LOCATIONS não pode incluir storage_location/path1/. Da mesma forma, se STORAGE_ALLOWED_LOCATIONS inclui storage_location/path1/, então STORAGE_BLOCKED_LOCATIONS não pode incluir storage_location/path1/path2/, e assim por diante.

Amazon S3

STORAGE_ALLOWED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] ) | STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )

  • bucket é o nome de um bucket S3 que armazena seus arquivos de dados (por exemplo, mybucket).

  • path é um caminho opcional que distingue letras maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (ou seja, os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o acesso a um conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem.

Google Cloud Storage

STORAGE_ALLOWED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )

  • bucket é o nome de um bucket GCS que armazena seus arquivos de dados (por exemplo, mybucket).

  • path é um caminho opcional que distingue letras maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (ou seja, os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o acesso a um conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem.

Microsoft Azure

STORAGE_ALLOWED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )

  • account é o nome da conta Azure (por exemplo, myaccount). Use o ponto de extremidade blob.core.windows.net para todos os tipos com suporte de contas de armazenamento de blobs Azure, incluindo Data Lake Storage Gen2.

  • container é o nome do contêiner Azure que armazena seus arquivos de dados (por exemplo, mycontainer).

  • path é um caminho opcional que distingue letras maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (ou seja, os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o acesso a um conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem.

STORAGE_BLOCKED_LOCATIONS = ('cloud_specific_url')

Proíbe explicitamente os estágios externos que utilizam a integração de referenciar um ou mais locais de armazenamento (Amazon S3, Google Cloud Storage ou Microsoft Azure). Oferece suporte a uma lista separada por vírgula de URLs para locais de armazenamento existentes e, opcionalmente, caminhos usados para armazenar arquivos de dados para carregamento/descarregamento. Comumente usado quando STORAGE_ALLOWED_LOCATIONS é definido como o curinga *, permitindo acesso a todos os buckets em sua conta exceto para locais de armazenamento bloqueados e, opcionalmente, caminhos.

Nota

Certifique-se de incluir somente URLs de local individual de armazenamento em nuvem entre aspas. Se você incluir o valor inteiro STORAGE_BLOCKED_LOCATIONS entre aspas, o valor será inválido. Como resultado, a configuração do parâmetro STORAGE_BLOCKED_LOCATIONS é ignorada quando usuários criam estágios que fazem referência à integração de armazenamento.

Amazon S3

STORAGE_BLOCKED_LOCATIONS = ( 's3://bucket/path/' [ , 's3://bucket/path/' ... ] ) | STORAGE_ALLOWED_LOCATIONS = ( 's3gov://bucket/path/' [ , 's3gov://bucket/path/' ... ] )

  • bucket é o nome de um bucket S3 que armazena seus arquivos de dados (por exemplo, mybucket).

  • path é um caminho opcional (ou diretório) no bucket que limita ainda mais o acesso aos arquivos de dados.

Google Cloud Storage

STORAGE_BLOCKED_LOCATIONS = ( 'gcs://bucket/path/' [ , 'gcs://bucket/path/' ... ] )

  • bucket é o nome de um bucket GCS que armazena seus arquivos de dados (por exemplo, mybucket).

  • path é um caminho opcional (ou diretório) no bucket que limita ainda mais o acesso aos arquivos de dados.

Microsoft Azure

STORAGE_BLOCKED_LOCATIONS = ( 'azure://account.blob.core.windows.net/container/path/' [ , 'azure://account.blob.core.windows.net/container/path/' ... ] )

  • account é o nome da conta Azure (por exemplo, myaccount).

  • container é o nome do contêiner Azure que armazena seus arquivos de dados (por exemplo, mycontainer).

  • path é um caminho opcional (ou diretório) no contêiner que limita ainda mais o acesso aos arquivos de dados.

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.

COMMENT = 'string_literal'

Cadeia de caracteres (literal) que especifica um comentário da integração.

UNSET ...

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

  • ENABLED

  • STORAGE_BLOCKED_LOCATIONS

  • TAG tag_name [ , tag_name ... ]

  • COMMENT

Parâmetros do provedor de nuvem (cloudProviderParams)

Amazon S3

STORAGE_AWS_ROLE_ARN = 'iam_role'

Especifica o Amazon Resource Name (ARN) da função AWS de gerenciamento de identidade e acesso (IAM) que concede privilégios no bucket S3 que contém seus arquivos de dados. Para obter mais informações, consulte Configuração de acesso seguro ao Amazon S3.

STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'

Habilita o suporte de listas de controle de acesso (ACLs) da AWS para conceder o controle total ao proprietário do bucket S3. Os arquivos criados nos buckets S3 da Amazon a partir de dados de tabela descarregados são de propriedade de uma função de Gerenciamento de Identidade e Acesso (IAM) do AWS. ACLs oferecem suporte ao caso de uso em que funções IAM em uma conta AWS são configuradas para acessar buckets S3 em uma ou mais outras contas AWS. Sem suporte para ACL, os usuários nas contas do proprietário do bucket não poderiam acessar os arquivos de dados descarregados para um estágio externo (S3) utilizando uma integração de armazenamento.

Quando os usuários descarregam os dados da tabela Snowflake para arquivos de dados em um estágio S3 usando COPY INTO <local>, a operação de descarregamento aplica uma ACL aos arquivos de dados descarregados. Os arquivos de dados aplicam o privilégio "s3:x-amz-acl":"bucket-owner-full-control" aos arquivos, concedendo ao proprietário do bucket S3 total controle sobre eles.

STORAGE_AWS_EXTERNAL_ID = 'external_id'

Especifica um ID externo que o Snowflake usa para estabelecer uma relação de confiança com AWS. Você deve especificar o mesmo ID externo na política de confiança da função IAM que você configurou para esta integração de armazenamento. Para obter mais informações, consulte Como usar um ID externo ao conceder acesso aos seus recursos do AWS a terceiros.

Microsoft Azure

AZURE_TENANT_ID = 'tenant_id'

Especifica a ID de seu locatário do Office 365 ao qual pertencem as contas de armazenamento permitidas e bloqueadas. Uma integração de armazenamento pode autenticar a somente um locatário e, portanto, os locais de armazenamento permitidos e bloqueados devem se referir às contas de armazenamento que pertencem a este locatário.

Para encontrar sua ID de locatário, entre no portal Azure e clique em Azure Active Directory » Properties. A ID do locatário é exibida no campo Tenant ID.

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 STORAGE INTEGRATION myint SET ENABLED = TRUE;
Copy