【问题标题】:Snowflake - Privileges required to load data via Web UISnowflake - 通过 Web UI 加载数据所需的权限
【发布时间】:2021-01-01 10:35:34
【问题描述】:

尝试设置用户以使用 Web 界面加载数据(受限)来加载带有 csv 电子表格的表格。执行此类加载需要哪些权限?查看 Snowflake 文档,它显示了如何进行加载,并说只要您必须更正权限就可以,但它从未说明需要哪些确切权限。任何帮助将不胜感激。

【问题讨论】:

  • “csv 电子表格”是什么意思?只是一个 CSV 文件?

标签: load snowflake-cloud-data-platform wizard


【解决方案1】:

请注意,与其他数据加载方法相比,通过 Snowflake Web UI 加载存在局限性。

为了回答您的问题,在这种情况下(使用 Web UI 时),创建并自动使用了一个表阶段。如文档中所述,要将文件加载到表阶段,您必须是表所有者(具有对目标表具有 OWNERSHIP 权限的角色)。 https://docs.snowflake.com/en/user-guide/data-load-local-file-system-create-stage.html#table-stages

【讨论】:

  • 我了解限制,只是想了解权限。我已将 DATABASE USAGE、SCHEMA USAGE 以及对 TABLE 的 INSERT、UPDATE、DELETE、SELECT 访问权限全部授予我尝试使用的 ROLE。 ROLE 没有创建初始TABLE,所以TABLE 的OWNERSHIP 是不同的ROLE。我正在尝试将 TABLE OWNERSHIP 更改为尝试执行 LOAD 的角色,看看是否可以解决。
【解决方案2】:

首先为用户创建一个角色并尝试一下

GRANT ROLE <ROLE NAME> TO USER <USER NAME>;
GRANT USAGE ON DATABASE <DB NAME> TO ROLE <ROLE NAME>;
GRANT USAGE ON SCHEMA <SCHEMA NAME> TO <ROLE NAME>;
GRANT CREATE TABLE ON SCHEMA <SCHAME NAME> TO ROLE <ROLE NAME>;

【讨论】:

  • 我已将 DATABASE USAGE、SCHEMA USAGE 以及对 TABLE 的 INSERT、UPDATE、DELETE、SELECT 访问权限全部授予我尝试使用的角色。 ROLE 没有创建初始TABLE,所以TABLE 的OWNERSHIP 是不同的ROLE。我正在尝试将 TABLE OWNERSHIP 更改为尝试执行 LOAD 的角色,看看是否可以解决。
  • 所以当我尝试将 TABLE 上的 OWNERSHIP 更改为新的 ROLE 时出现以下错误... SQL 执行错误:托管访问架构中的所有权限制违规。受让人需要是架构所有者的从属角色。
  • 所以这是安全模式中的单个表。 SCHEMA 和模式中所有对象的所有权最初设置为 FULL 部署角色。我们现在正试图将一个表的所有权更改为 SECURITY 角色,但不能。
  • 对,在托管访问模式中更改表的所有者是没有意义的。使用托管访问模式,整个想法是单个对象所有者失去了管理其对象(如表)的能力,而模式所有者则管理所有对象。 docs.snowflake.com/en/user-guide/…
  • 因为托管访问模式及其关联对象旨在由模式所有者管理,所以模式中的对象不能将其所有权转移给非模式所有者角色(因为这会破坏托管访问模式的目的)。如果它是常规模式(禁用托管访问),您可以根据需要转移各个对象的所有权。还有其他选项,例如更改架构所有者角色,或者您可以使用与 UI 不同的表加载方法。
猜你喜欢
  • 2021-10-16
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2021-09-04
  • 2011-01-28
  • 1970-01-01
相关资源
最近更新 更多