创建应用程序包

本主题介绍如何使用 Snowflake Native App Framework 创建和管理应用程序包。

关于应用程序包

应用程序包是封装应用程序所需的数据内容、应用程序逻辑、元数据和设置脚本的容器。应用程序包中还包含有关为应用程序定义的版本和修补程序级别的信息。

创建应用程序包

Snowflake Native App Framework 支持使用 Snowsight 创建应用程序包,您也可以创建运行 SQL 命令的应用程序。

创建应用程序包时所需的权限

要创建应用程序包,您的角色必须获授全局 CREATE APPLICATION PACKAGE 权限。

将清单文件和安装脚本上传至命名暂存区

可以通过两种方法将文件上传到命名暂存区:

使用 Snowsight 创建应用程序包

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » App packages.

  3. 选择 Create,然后点击右侧窗格中的 App Package

  4. 输入应用程序包的名称。

  5. 选择应用程序包的预期使用者:

    • 选择 Distribute to accounts outside of your organization,使该应用程序包可在您的组织外部使用。选择此选项将为应用程序包中定义的每个版本和补丁启动 自动安全扫描

    • 选择 Distribute to accounts in your organization,使该应用程序包可在您的组织内部使用。自动安全扫描不会启动。

  6. (可选)为应用程序包输入注释。使用者看不到这些注释。

  7. 选择 Add

使用 SQL 命令创建应用程序包

要使用 SQL 创建应用程序包,请使用 CREATE APPLICATION PACKAGE 命令,如以下示例所示:

CREATE APPLICATION PACKAGE HelloSnowflakePackage;
Copy

创建应用程序包后,使用 SHOW APPLICATION PACKAGES 命令查看可用应用程序包列表。

授予应用程序包的权限

与开发您所需的应用程序包相关的某些任务会在应用程序包上设置特定权限。下表描述了执行这些任务所需的权限:

权限

任务

ATTACH LISTING

将应用程序包添加到列表。

DEVELOP

从应用程序包创建一个处于开发模式的 APPLICATION 对象。

INSTALL

基于应用程序包创建一个 APPLICATION 对象。

MANAGE RELEASES

指定发布指令、查看版本和补丁级别。

MANAGE VERSIONS

向应用程序包添加版本和补丁级别。

OWNERSHIP

执行上述所有任务。

使用 Snowsight 授予应用程序包的权限

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » App packages.

  3. 选择应用程序包,然后选择 Settings 选项卡。

  4. Privileges 部分中,选择要授予的权限旁边的编辑图标。

  5. 选择 Add Role,然后选择想要授予权限的角色。

  6. 选择 Save

角色会显示在权限旁边。

使用 SQL 命令授予应用程序包的权限

要使用 SQL 向角色授予对应用程序包的权限,请使用 GRANT <privileges> ... TO ROLE 命令,如以下示例所示:

GRANT MANAGE RELEASES ON APPLICATION PACKAGE hello_snowflake_package TO ROLE app_release_mgr;
Copy

此命令会向 app_release_mgr 角色授予 MANAGE RELEASES 权限。您可以使用相同的命令,授予一个应用程序包的其他可用权限。

设置应用程序包的默认发布指令

发布指令确定使用者在安装应用程序或自动升级已安装的应用程序时可用的应用程序版本和补丁。要对应用程序包设置发布指令,请使用 ALTER APPLICATION PACKAGE 命令。

有关更多信息,请参阅 为应用程序设置发布指令

允许使用者安装一个应用程序的多个实例

提供商可以配置应用程序包,允许使用者安装一个应用程序的多个实例。

要启用应用程序的多个实例,请使用 CREATE APPLICATION PACKAGEMULTIPLE_INSTANCES = TRUE 子句或 ALTER APPLICATION PACKAGE 命令。

如果允许安装一个应用程序的多个实例,使用者最多可在其账户中安装 10 个实例。

无法为试用版或付费列表中所含的应用程序包设置此属性。

小心

MULTIPLE_INSTANCES 属性设置为 TRUE 后,无法取消设置或将其设置为 FALSE

转移应用程序包的所有权

创建应用程序包后,可以将该应用程序包的所有权转移给另一个账户级角色。

使用 Snowsight 转移所有权

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » App packages.

  3. 选择要转移所有权的应用程序包旁边的 ...,然后选择 Transfer Ownership

  4. Transfer to 下选择新的账户级角色。

  5. 选择 Transfer

使用 SQL 命令转移所有权

要使用 SQL 将应用程序包的所有权转移到另一个账户级别角色,请使用 GRANT OWNERSHIP 命令,如以下示例所示:

GRANT OWNERSHIP ON APPLICATION PACKAGE hello_snowflake_package TO ROLE native_app_dev;
Copy

删除应用程序包

拥有应用程序包的 OWNERSHIP 权限的用户可将其从账户中移除。但不能移除当前与列表关联的应用程序包。

在移除应用程序包后,它在提供商账户中将不再可用。

备注

移除列表和随附的应用程序包后,使用者可以查看但不能访问从该应用程序包创建的 Snowflake Native App。如果使用者尝试访问 Snowflake Native App,则会收到一条错误消息,指明该应用程序包已被移除。

使用 Snowsight 移除应用程序包

  1. Sign in to Snowsight.

  2. In the navigation menu, select Projects » App packages.

  3. 选择要移除的应用程序包旁边的 ...,然后选择 Drop

使用 SQL 命令移除应用程序包

要使用 SQL 移除应用程序包,请运行 DROP APPLICATION PACKAGE 命令,如以下示例所示:

DROP APPLICATION PACKAGE hello_snowflake_package;
Copy
语言: 中文