ALTER STORAGE INTEGRATION

修改现有存储集成的属性。

另请参阅:

CREATE STORAGE INTEGRATIONDROP INTEGRATIONSHOW INTEGRATIONSDESCRIBE INTEGRATION

语法

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

其中:

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

参数

name

要更改的集成的标识符。如果标识符包含空格或特殊字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

SET ...

指定要为表设置的一个或多个属性/参数(用空格、逗号或新行分隔):

ENABLED = TRUE | FALSE

指定此存储集成是否可在暂存区中使用。

  • TRUE 允许用户创建引用此集成的新暂存区。通常引用此集成函数的现有暂存区。

  • FALSE 阻止用户创建引用此集成的新暂存区。引用此集成的现有暂存区无法访问暂存区定义中的存储位置。

STORAGE_ALLOWED_LOCATIONS = ('cloud_specific_url')

显式限定使用集成的外部暂存区只能引用一个或多个存储位置(Amazon S3、Google Cloud Storage 或 Microsoft Azure)。支持以逗号分隔的现有桶 URLs,以及用于存储数据文件以进行加载/卸载的路径(可选)。此外还支持 * 通配符,即“允许访问所有桶和/或路径”。

Amazon S3

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

  • bucket 代表存储数据文件的 S3 桶的名称(例如 mybucket)。

  • path 是云存储位置中文件的可选路径(即文件的名称以公共字符串开头),且区分大小写,用于限制对一组文件的访问。不同的云存储服务也可以将路径称为 前缀文件夹

Google Cloud Storage

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

  • bucket 是存储数据文件的 GCS 桶的名称(例如 mybucket)。

  • path 是云存储位置中文件的可选路径(即文件的名称以公共字符串开头),且区分大小写,用于限制对一组文件的访问。不同的云存储服务也可以将路径称为 前缀文件夹

Microsoft Azure

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

  • account 是 Azure 账户的名称(例如 myaccount)。将 blob.core.windows.net 端点用于所有受支持类型的 Azure Blob 存储账户,包括 Data Lake Storage Gen2。

  • container 是存储数据文件的 Azure 容器的名称(例如 mycontainer)。

  • path 是云存储位置中文件的可选路径(即文件的名称以公共字符串开头),且区分大小写,用于限制对一组文件的访问。不同的云存储服务也可以将路径称为 前缀文件夹

STORAGE_BLOCKED_LOCATIONS = ('cloud_specific_url')

显式禁止使用集成的外部暂存区引用一个或多个存储位置(Amazon S3、Google Cloud Storage 或 Microsoft Azure)。支持以逗号分隔的 URLs 现有存储位置列表,以及用于存储数据文件以进行加载/卸载的路径(可选)。通常用于 STORAGE_ALLOWED_LOCATIONS 设置为 * 通配符的时候,允许访问您账户中除阻止的存储位置和路径(可选) :emph:` 之外 ` 的所有桶。

备注

确保仅在引号之间包含单个云存储位置 URLs。如果在引号之间包含整个 STORAGE_BLOCKED_LOCATIONS 值,则该值无效。因此,在用户创建引用存储集成的暂存区时,STORAGE_BLOCKED_LOCATIONS 参数设置会被忽略。

Amazon S3

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

  • bucket 代表存储数据文件的 S3 桶的名称(例如 mybucket)。

  • path 是桶中的可选路径(或 目录),用于进一步限制对数据文件的访问。

Google Cloud Storage

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

  • bucket 是存储数据文件的 GCS 桶的名称(例如 mybucket)。

  • path 是桶中的可选路径(或 目录),用于进一步限制对数据文件的访问。

Microsoft Azure

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

  • account 是 Azure 账户的名称(例如 myaccount)。

  • container 是存储数据文件的 Azure 容器的名称(例如 mycontainer)。

  • path 是容器中的可选路径(或 目录),用于进一步限制对数据文件的访问。

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

指定 标签 名称和标签字符串值。

标签值始终为字符串,标签值的最大字符数为 256。

有关在语句中指定标签的信息,请参阅 对象和列的标签配额

COMMENT = 'string_literal'

字符串(字面量),用于指定集成注释。

UNSET ...

指定要为存储集成取消设置的一个或多个属性/参数,这会将它们重置回默认值:

  • ENABLED

  • STORAGE_BLOCKED_LOCATIONS

  • TAG tag_name [ , tag_name ... ]

  • COMMENT

云提供商参数 (cloudProviderParams)

Amazon S3

STORAGE_AWS_ROLE_ARN = 'iam_role'

指定 AWS Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN),该角色授予对包含数据文件的 S3 桶的权限。有关更多信息,请参阅 配置对 Amazon S3 的安全访问

STORAGE_AWS_OBJECT_ACL = 'bucket-owner-full-control'

启用对 AWS 访问控制列表 (ACLs) 的支持,以向 S3 桶所有者授予完全控制权。通过卸载的表数据在 Amazon S3 桶中创建的文件由 AWS Identity and Access Management (IAM) 角色所拥有。ACLs 支持以下用例:配置一个 AWS 账户中的 IAM 角色,以访问一个或多个其他 AWS 账户中的 S3 桶。若没有 ACL 支持,桶所有者账户中的用户无法访问使用存储集成卸载到外部 (S3) 暂存区的数据文件。

当用户使用 COPY INTO <location> 将 Snowflake 表数据卸载到 S3 暂存区中的数据文件时,卸载操作会将 ACL 应用到卸载的数据文件。数据文件将 "s3:x-amz-acl":"bucket-owner-full-control" 权限应用于文件,授予 S3 桶所有者对它们的完全控制权。

STORAGE_AWS_EXTERNAL_ID = 'external_id'

指定 Snowflake 与 AWS 建立信任关系所使用的外部 ID。您必须在为此存储集成配置的 IAM 角色的信任策略中指定相同的外部 ID。有关更多信息,请参阅向第三方授予 AWS 资源访问权限时 ` 如何使用外部 ID <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)>`_。

Microsoft Azure

AZURE_TENANT_ID = 'tenant_id'

为允许和阻止的存储账户所属的 Office 365 租户指定 ID。存储集成只能对一个租户进行身份验证,因此允许和阻止的存储位置必须引用同属于此租户的存储账户。

要查找租户 ID,请登录 Azure 门户并点击 Azure Active Directory » Properties。租户 ID 将显示在 Tenant ID 字段中。

使用说明

关于元数据:

注意

客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段

示例

以下示例启动了已暂停的集成的操作:

ALTER STORAGE INTEGRATION myint SET ENABLED = TRUE;
Copy
语言: 中文