【问题标题】:Quicksight - "No tables found" for Snowflake data sourceQuicksight - Snowflake 数据源的“未找到表”
【发布时间】:2020-08-29 18:54:16
【问题描述】:

我在 Snowflake 中有一个包含架构、表和视图的数据库,以及一个用于运行查询的仓库。公共角色已被授予对所有人的 SELECT 和 USAGE 访问权限。

但是当我将 Snowflake 连接到 AWS QuickSight 时,没有可用的架构或表。

为了测试我检查过的权限,我可以使用公共角色以及仓库、数据库和架构来查询 Snowflake 工作表中的视图。作为进一步的测试,我还将Redash 连接到 Snowflake 并可以查询那里的视图。

不过,使用相同的凭据在 QuickSight 中没有任何功能。我尝试过使用大写和小写的数据库和仓库名称 (Quicksight Data sets - Unable to see snowflake schema and tables)。

如果我更改 QuickSight 以连接到 SNOWFLAKE_SAMPLE_DATA 数据库,我可以看到架构列表,但没有显示任何架构的表。

我可能会错过什么?

【问题讨论】:

  • 一些潜在的想法来缩小范围。如果您使用自定义 SQL 选项,您可以访问这些表吗?如果您使用更高的角色(如 ACCOUNTADMIN)进行测试,您能看到表格吗?在 Snowflake 端返回的查询是什么(样本数据是否有 SHOW 对象或等效对象,但其他表没有)?您使用的是最新版本的驱动程序(我相信这是 JDBC)吗?是否启用了任何 JDBC 日志记录以提供线索?亚马逊支持也可以提供一些想法。
  • 谢谢。当我在自定义 SQL 中 SELECT * FROM MY_VIEW 时,数据在 QuickSight 中可用
  • 有趣!因此,显示对象的查询不能成功返回结果(无论出于何种原因,无论是权限还是其他问题)。

标签: amazon-web-services permissions snowflake-cloud-data-platform amazon-quicksight


【解决方案1】:

我建议您为 Quicksight/Redash 或此类应用程序创建一个新角色,并将其授予您的 Quicksight 用户。 你可以从 redash 中看到很奇怪。

假设您有一个名为REPORTING 的角色,这里是您需要的最低权限:

GRANT USAGE ON WAREHOUSE YOUR_WH TO ROLE REPORTING;

GRANT USAGE ON DATABASE YOUR_DB TO ROLE REPORTING;

GRANT USAGE ON SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;

GRANT SELECT ON ALL TABLES IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
GRANT SELECT ON FUTURE TABLES IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;

GRANT SELECT ON ALL VIEWS IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA YOUR_DB.PUBLIC TO ROLE REPORTING;

另外,一定要运行这个:

GRANT ROLE REPORTING TO USER QUICKSIGHTS;

我们总是在 Snowflake 中使用 CAPITAL case 关键字。

【讨论】:

  • 谢谢。我创建了这个角色,它解决了问题
  • "将架构 YOUR_DB.YOUR_ROLE 的使用权限授予角色报告;"这也是需要的SQL。
猜你喜欢
  • 2022-06-28
  • 1970-01-01
  • 2018-10-09
  • 2015-04-21
  • 2012-03-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
相关资源
最近更新 更多