【问题标题】:SNOWFLAKE.INFORMATION_SCHEMA does not showing any recordSNOWFLAKE.INFORMATION_SCHEMA 不显示任何记录
【发布时间】:2020-01-24 08:30:45
【问题描述】:

我正在尝试从帐户管理员对 SNOWFLAKE.INFORMATION_SCHEMA 进行以下查询,但它返回错误。

查询

Select 
   'databases' as category,
   count(*) as found, 
   '3' as expected
from SNOWFLAKE.INFORMATION_SCHEMA.DATABASES
where DATABASE_NAME IN ('USDA_NUTRIENT_STDREF','LIBRARY_CARD_CATALOG','SOCIAL_MEDIA_FLOODGATES')

错误

SQL 编译错误:数据库“SNOWFLAKE”不存在或未授权。

已检查的 SNOWFLAKE 数据库存在,但它没有任何架构,包括 INFORMATION_SCHEMA

【问题讨论】:

  • 数据库用户是否有权限访问information_schema?
  • 您确定以accountadmin 角色运行它吗?这对我来说是sysadmin
  • 请注意,您不必对 SNOWFLAKE 数据库运行此查询。如果您对任何数据库运行它,它将返回相同的结果。如果在使用 SNOWFLAKE 时不起作用,请查看尝试其他数据库时会发生什么。

标签: snowflake-cloud-data-platform


【解决方案1】:

数据库位于您的帐户下。 Account 是 Snowflake 对象层次结构中的顶级对象。数据库在帐户下。请参阅this link,并找到上面写着“最顶层容器是客户帐户...”的文本。那里有一个漂亮的小图形。

当您在 Snowflake 数据库上查询 information_schema 时,您获得的只是雪花数据库的 information_schema,而不是您的整个帐户。 Snowflake.information_schema 有点无用 b/c 它只是显示您无法控制的数据库 (Snowflake) 的信息模式 - Snowflake 控制它。

如果您想查看您帐户中的所有数据库,您可以执行以下操作:

use role accountadmin;
show databases;
select count(*) from table(result_scan(last_query_id())) where "name" in ('USDA_NUTRIENT_STDREF','LIBRARY_CARD_CATALOG','SOCIAL_MEDIA_FLOODGATES');

现在,另外,如果您担心遇到的错误 - 您无权访问雪花数据库,那么我会说您要么没有使用 accountadmin 角色,要么您没有使用具有正确权限的角色。如果您想为 Snowlfake 数据库授予角色权限,可以运行以下命令:

GRANT IMPORTED PRIVILEGES
    ON DATABASE SNOWFLAKE TO ROLE {SOME_ROLE_OF_YOURS};

祝你好运!

【讨论】:

    猜你喜欢
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2021-05-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多