将受限调用方权限授予应用程序中的可执行文件:¶
本主题介绍如何将受限调用方权限授予应用程序中的可执行文件。
关于应用程序中所有者的权利和受限调用方的权限¶
在 Snowflake Native App 中,可执行文件以所有者权限或受限制的调用方权限运行。在 Snowflake Native App Framework 的上下文中,支持以下类型的可执行对象:
应用程序拥有的存储过程
带有容器的应用程序中提供的服务
- 所有者权限:
使用所有者权限的可执行对象,以授予可执行对象所有者的权限运行。默认情况下,应用程序中的可执行对象使用所有者权限。在应用程序中,可执行对象的所有者是应用程序本身。
- 受限制的调用方的权限:
受限调用方的权限允许可执行文件以调用方的权限运行,但会限制可执行文件运行的调用方权限范围。在受限制的调用方权限下,应用程序拥有的可执行文件无法以某项特定权限运行,除非使用者账户中的管理员通过使用 GRANT CALLER 命令明确允许该权限。
授予应用程序受限调用方权限所需的权限¶
要以使用者身份向应用程序授予调用方权限,您必须使用 ACCOUNTADMIN 角色或使用具备 MANAGE CALLER GRANTS 权限的角色。有关更多信息,请参阅 GRANT CALLER。
使用 Snowsight 向应用程序中的可执行文件授予调用方权限¶
使用 Snowsight,您可以在使用者账户中向应用程序授予调用方权限,以访问对象。
备注
要执行其他任务,包括撤消应用程序中的调用方权限或授予调用方访问特定表的权限,必须使用相应的 SQL 命令。
登录 Snowsight。
在导航菜单中,选择 Data Products » Apps。
选择应用程序。
点击工具栏中的 Settings 图标,然后选择 Privileges 选项卡。
如果应用程序支持受限调用方权限,则 Restricted caller's rights 部分将显示在 Privileges 选项卡中。
备注
只有当提供商将应用程序配置为显示受限调用方权限 UI 时,您才能在 Snowsight 中向调用方授予权限。
点击 Add grants。
选择 Access scope。
这决定了调用方权限是适用于架构、数据库还是账户级别。您应选择范围尽可能小的选项,以避免向应用程序授予不必要的权限。
小心
选择账户级别范围时要小心,这可能会授予调用方对所有支持的对象类型的应用程序的权限。
如果您选择了架构或数据库范围,请根据需要选择架构或数据库。
备注
您可以选择多个架构或数据库。您还可以在不同的数据库中选择架构。
点击 Next。
选择将授予调用方权限的对象类型。
使用搜索来查找对象类型。对象类型列表取决于您之前选择的范围。
当您选择对象类型时,列表中相应对象的条目会展开,显示各对象类型对应的可用权限。
选择要授予的权限。
您可以为每种对象类型选择多个权限。您也可以为其他对象类型选择权限。
备注
Snowflake 会自动授予对您选择的任何对象的 USAGE 权限。
点击 Next。
选择 Grant summary 以验证您选择的范围、对象类型和权限。
备注
将来创建的选定类型的任何对象,都将使用选定的范围和对象类型,以相同的权限创建。
选择 SQL 以查看 Snowsight 将要运行的 GRANT CALLER 命令。
备注
如果需要,您可以复制这些命令并在工作表中手动运行它们。
点击 Save
您选择的范围、对象和权限会显示在 Restricted caller's rights section 中。
要修改所选权限,请点击 Edit,然后根据需要选择或取消选择权限。
使用 SQL 向应用程序中的可执行文件授予调用方权限¶
在配置请求受限调用方权限的应用程序时,请执行以下任务以授予该应用程序调用方权限:
查看应用程序列表,确认提供商是否说明该应用程序具有 RCR 可执行文件。
根据列表内容,授予调用方权限。以下示例显示如何使用 GRANT CALLER 命令向特定数据库和架构中的所有表授予 SELECT 权限:
GRANT CALLER USAGE ON DATABASE db1 TO APPLICATION hello_snowflake_app; GRANT CALLER USAGE ON SCHEMA db1.sch1 TO APPLICATION hello_snowflake_app; GRANT INHERITED CALLER SELECT ON ALL TABLES IN SCHEMA db.sch1 TO APPLICATION hello_snowflake_app;
该命令允许具有受限调用方权限的可执行文件访问
db.sch1
数据库和架构中所有表上的运行查询。除了向所有表授予 SELECT 权限外,还必须向数据库和架构授予 USAGE 权限。