CREATE IMAGE REPOSITORY

在当前架构中创建新的 镜像仓库

另请参阅:

DROP IMAGE REPOSITORYSHOW IMAGE REPOSITORIES

语法

CREATE [ OR REPLACE ] IMAGE REPOSITORY [ IF NOT EXISTS ] <name>
  [ ENCRYPTION = ( TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE' ) ]
Copy

必填参数

name

指定镜像仓库的标识符(即名称);对于在其中创建存储库的架构,它必须是唯一的。

不支持带引号的特殊字符名称或区分大小写的名称。同样的约束也适用于在其中创建镜像仓库的数据库和架构名称。也就是说,在创建镜像仓库时,不带引号的数据库和架构名称是有效的。

可选参数

ENCRYPTION = ( TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE' )

指定用于存储在镜像仓库中的二进制文件的加密类型。创建镜像仓库后,无法更改加密类型。

TYPE = ...

指定要使用的加密类型。

可能的值如下:

  • SNOWFLAKE_FULL:主机(镜像注册表主机)和服务器端加密。数据首先由 Snowflake 的镜像注册表服务加密,然后再将数据发送到托管您的 Snowflake 账户的云服务提供商存储(例如 Amazon S3)。

    Snowflake 默认使用带有 128 位加密密钥的 AES-GCM。可以通过设置 CLIENT_ENCRYPTION_KEY_SIZE 参数来配置 256 位密钥。所有二进制文件也都会使用服务器端的 AES-256 强加密机制自动加密。

    备注

    借助 SNOWFLAKE_FULL 加密,Snowflake 可能会限制对公共镜像仓库 API 的请求。仅当 Snowflake 检测到针对镜像仓库存在异常大量的并行请求时,才会触发此限制。请注意,服务创建永远不会受到影响。

  • SNOWFLAKE_SSE:仅服务器端加密。二进制文件在到达镜像仓库存储区域时,由托管您的 Snowflake 账户的云服务提供商(例如 Amazon S3)对其进行加密。

Default: SNOWFLAKE_FULL

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

CREATE IMAGE REPOSITORY

架构

要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

  • 关于元数据:

    注意

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

  • The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

示例

创建镜像仓库:

CREATE OR REPLACE IMAGE REPOSITORY tutorial_repository;
Copy

使用 SNOWFLAKE_FULL 加密来创建镜像仓库:

CREATE OR REPLACE IMAGE REPOSITORY tutorial_repository
ENCRYPTION = (type = 'SNOWFLAKE_SSE');
Copy
语言: 中文