创建应用程序包¶
本主题介绍如何使用 Snowflake Native App Framework 创建和管理应用程序包。
关于应用程序包¶
应用程序包是封装应用程序所需的数据内容、应用程序逻辑、元数据和设置脚本的容器。应用程序包中还包含有关为应用程序定义的版本和修补程序级别的信息。
创建应用程序包¶
Snowflake Native App Framework 支持使用 Snowsight 创建应用程序包,您也可以创建运行 SQL 命令的应用程序。
创建应用程序包时所需的权限¶
要创建应用程序包,您的角色必须获授全局 CREATE APPLICATION PACKAGE 权限。
将清单文件和安装脚本上传至命名暂存区¶
在创建应用程序包之前,您必须创建清单文件和安装脚本,并将其上传到您的账户可以访问的命名暂存区。
可以通过两种方法将文件上传到命名暂存区:
使用 Snowsight。有关详细信息,请参阅 使用 Snowsight 暂存文件。
使用 PUT 命令。
使用 Snowsight 创建应用程序包¶
要使用 Snowsight 创建应用程序包,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » App Packages。
选择 Create » App Package。
输入应用程序包的名称。
选择应用程序包的预期使用者:
选择 Consumers outside of your organization,使该应用程序包可在您的组织外部使用。选择此选项将为应用程序包中定义的每个版本和补丁启动 自动安全扫描。
选择 Consumers within your organization,使该应用程序包可在您的组织内部使用。自动安全扫描不会启动。
(可选)为应用程序包输入注释。使用者看不到这些注释。
选择 Create。
使用 SQL 命令创建应用程序包¶
要使用 SQL 创建应用程序包,请使用 CREATE APPLICATION PACKAGE 命令,如以下示例所示:
CREATE APPLICATION PACKAGE HelloSnowflakePackage;
创建应用程序包后,使用 SHOW APPLICATION PACKAGES 命令查看可用应用程序包列表。
授予应用程序包的权限¶
与开发您所需的应用程序包相关的某些任务会在应用程序包上设置特定权限。下表描述了执行这些任务所需的权限:
权限 |
任务 |
---|---|
ATTACH LISTING |
将应用程序包添加到列表。 |
DEVELOP |
从应用程序包创建一个处于开发模式的 APPLICATION 对象。 |
INSTALL |
基于应用程序包创建一个 APPLICATION 对象。 |
MANAGE RELEASES |
指定发布指令、查看版本和补丁级别。 |
MANAGE VERSIONS |
向应用程序包添加版本和补丁级别。 |
OWNERSHIP |
执行上述所有任务。 |
使用 Snowsight 授予应用程序包的权限¶
要使用 Snowsight 设置应用程序包的权限,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » App Packages。
选择应用程序包,然后选择 Settings 选项卡。
在 Privileges 部分中,选择要授予的权限旁边的编辑图标。
选择 Add Role,然后选择想要授予权限的角色。
选择 Save。
角色会显示在权限旁边。
使用 SQL 命令设置应用程序包的权限¶
要使用 SQL 向角色授予对应用程序包的权限,请使用 GRANT <privileges> 命令,如以下示例所示:
GRANT MANAGE RELEASES ON APPLICATION PACKAGE HelloSnowflakePackage TO ROLE app_release_mgr;
此命令会向 app_release_mgr
角色授予 MANAGE RELEASES 权限。您可以使用相同的命令,授予一个应用程序包的其他可用权限。
转移应用程序包的所有权¶
创建应用程序包后,可以将该应用程序包的所有权转移给另一个账户级角色。
使用 Snowsight 转移所有权¶
要使用 Snowsight 转移应用程序包的所有权,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » App Packages。
选择要移除的应用程序包旁边的 ...,然后选择 Transfer Ownership。
在 Transfer to 下选择新的账户级角色。
选择 Transfer。
使用 SQL 命令转移所有权¶
要使用 SQL 将应用程序包的所有权转移到另一个账户级别角色,请使用 GRANT OWNERSHIP 命令,如以下示例所示:
GRANT OWNERSHIP ON APPLICATION HelloSnowflakePackage TO ROLE native_app_dev;
从账户中移除应用程序包¶
拥有应用程序包的 OWNERSHIP 权限的用户可将其从账户中移除。但不能移除当前与列表关联的应用程序包。
在移除应用程序包后,它在提供商账户中将不再可用。
备注
移除列表和随附的应用程序包后,使用者可以查看但不能访问从该应用程序包创建的 Snowflake Native App。如果使用者尝试访问 Snowflake Native App,则会收到一条错误消息,指明该应用程序包已被移除。
使用 Snowsight 移除应用程序包¶
要使用 Snowsight 移除应用程序包,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Projects » App Packages。
选择要移除的应用程序包旁边的 ...,然后选择 Drop。
使用 SQL 命令移除应用程序包¶
要使用 SQL 移除应用程序包,请运行 DROP APPLICATION PACKAGE 命令,如以下示例所示:
DROP APPLICATION PACKAGE HelloSnowflakePackage;