CREATE IMAGE REPOSITORY¶
在当前架构中创建新的 镜像仓库。
语法¶
CREATE [ OR REPLACE ] IMAGE REPOSITORY [ IF NOT EXISTS ] <name>
[ ENCRYPTION = ( TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE' ) ]
必填参数¶
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)对其进行加密。
默认值:
SNOWFLAKE_SSE
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE IMAGE REPOSITORY |
架构 |
要对架构中的任何对象执行操作,需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
OR REPLACE
和IF NOT EXISTS
子句互斥。它们不能同时用于同一条语句中。CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
示例¶
创建镜像仓库:
CREATE OR REPLACE IMAGE REPOSITORY tutorial_repository;
使用 SNOWFLAKE_FULL 加密来创建镜像仓库:
CREATE OR REPLACE IMAGE REPOSITORY tutorial_repository
ENCRYPTION = (type = 'SNOWFLAKE_FULL');