授予 Snowflake Native App 的访问权限¶
本主题介绍使用者如何允许 Snowflake Native App 在其账户中创建和访问对象。这包括授予应用程序请求的权限或使用引用来允许访问现有对象。
关于应用程序请求的权限和引用¶
在简单的 Snowflake Native App 中,应用程序所需的所有对象都是在安装过程中运行安装脚本时在 APPLICATION 对象内部创建的。应用程序所需的所有对象都是在已安装的应用程序中创建和访问的。使用者无需在其账户中执行任何操作。
但是,某些应用程序可能会要求使用者在其账户中执行以下类型的操作:
创建数据库或仓库。
执行任务。
访问现有对象,例如表。
Snowflake Native App 可以请求进行两种类型的访问:
允许应用程序执行某些账户级操作的权限。应用程序可以请求以下全局权限:
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
MANAGE WAREHOUSES
CREATE DATABASE
某些应用程序可能还会请求 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES 权限。有关详细信息,请参阅 授予 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES 权限。
允许应用程序访问对象的引用,这些对象已在使用者账户中,并且位于 APPLICATION 对象之外。提供商在
manifest.yml
文件中定义应用程序所需的引用。安装应用程序后,使用者可以通过创建 引用 将对象与应用程序关联,以授予对象访问权限。
应用程序可以请求访问以下类型的对象及其相应的权限:
对象类型
允许的权限
TABLE
SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES
VIEW
SELECT、REFERENCES
EXTERNAL TABLE
SELECT、REFERENCES
FUNCTION
USAGE
PROCEDURE
USAGE
WAREHOUSE
MODIFY、MONITOR、USAGE、OPERATE
API INTEGRATION
USAGE
使用者可以使用 Snowsight 审批这些请求,或者按以下部分所述,运行 SQL 命令来审批这些请求。
备注
如果您不授予所请求的权限或将所请求对象的引用关联到应用程序,则应用程序的某些部分可能无法正常运行。
使用 Snowsight 管理访问请求¶
如果提供商在 Snowflake Native App 中实施用户界面,使用者可以使用 Snowsight 执行以下操作。
查看和授予全局权限。
授予对使用者账户中现有对象的访问权限。
授予全局权限¶
要在安装应用程序后授予权限或创建引用,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Data Products » Apps。
选择应用程序。
选择工具栏中的 Security 图标。
选择 Privileges 选项卡。
应用程序请求的账户级权限显示在 Account level privileges 下面
在 Account-level privileges 部分中,选择 Review,然后切换您要授予的每项权限的滑块。
选择 Save。
撤消对象的权限和访问权限¶
要撤消对象的权限或移除对象的访问权限,请执行以下操作:
登录 Snowsight。
在导航菜单中,选择 Data Products » Apps。
选择应用程序。
选择工具栏中的 Security 图标。
选择 Privileges 选项卡。
要撤消全局权限,请选择 Edit 按钮,然后切换您要撤消的权限的滑块。
要撤消对特定对象的访问权限,请选择 Delete 按钮,然后选择 Revoke Privilege。
备注
如果撤消权限或移除对象的访问权限,可能会导致应用程序变得不稳定或停止运行。
使用 SQL 命令管理应用程序的权限¶
如果应用程序开发者没有实施用于授予权限的界面,您必须使用 SQL 命令管理应用程序的访问请求。
查看应用程序请求的权限¶
如果提供商指定应用程序所需的权限,权限请求将包含在要安装的应用程序内。您可以在安装应用程序后查看这些权限。
要查看应用程序所需的权限,请按如下示例所示运行 SHOW PRIVILEGES 命令:
SHOW PRIVILEGES IN APPLICATION hello_snowflake_app;
向 Snowflake Native App 授予权限¶
使用者确定应用程序请求的权限后,可以向应用程序授予这些权限。
例如,要向应用程序授予 EXECUTE TASK 权限,请按如下示例所示运行 GRANT PRIVILEGE 命令:
GRANT EXECUTE TASK ON ACCOUNT TO APPLICATION hello_snowflake_app;
向 Snowflake Native App 授予 MANAGE WAREHOUSES 权限¶
MANAGE WAREHOUSES 权限 允许应用程序在使用者账户内创建、修改和使用仓库。要向应用程序授予 MANAGE WAREHOUSES 权限,请按如下示例所示使用 GRANT:
GRANT MANAGE WAREHOUSES ON ACCOUNT TO APPLICATION hello_snowflake_app;
授予 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES 权限¶
某些应用程序可能会请求使用者授予账户中 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES 权限。要授予此权限,只能使用 SQL 命令,不能使用 Snowsight 授予。如果应用程序请求此权限,则提供商应将此请求传达给使用者,例如,在应用程序的 README 文件中。
要授予 SNOWFLAKE 数据库的 IMPORT 权限,请运行以下命令:
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO APPLICATION hello_snowflake_app;
备注
IMPORTED PRIVILEGES 权限允许应用程序访问与关联到使用者账户的使用情况和成本有关的信息。在授予此权限之前,使用者应确保希望与应用程序共享此信息。