Snowflake cloud data platform SNOWFLAKE.INFORMATION\u架构未显示任何记录

Snowflake cloud data platform SNOWFLAKE.INFORMATION\u架构未显示任何记录,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我正在尝试从帐户管理员对SNOWFLAKE.INFORMATION\u架构执行以下查询,但它返回了一个错误 查询: 选择 “数据库”作为类别, 按找到的数量计算*, "3"一如预期 来自SNOWFLAKE.INFORMATION\u SCHEMA.DATABASES “美国农业部营养标准”、“图书馆卡目录”、“社交媒体”中的数据库名称 错误: SQL编译错误:数据库“雪花”不存在或未授权 已检查雪花数据库存在,但它没有任何模式,包括您帐户下的数据库的信息。帐户是雪花对象层次结构中的顶级对象。数据

我正在尝试从帐户管理员对SNOWFLAKE.INFORMATION\u架构执行以下查询,但它返回了一个错误

查询:

选择 “数据库”作为类别, 按找到的数量计算*, "3"一如预期 来自SNOWFLAKE.INFORMATION\u SCHEMA.DATABASES “美国农业部营养标准”、“图书馆卡目录”、“社交媒体”中的数据库名称 错误:

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


已检查雪花数据库存在,但它没有任何模式,包括您帐户下的数据库的信息。帐户是雪花对象层次结构中的顶级对象。数据库在帐户下运行。请看,并找到上面的文字,上面写着,“最上面的容器是客户帐户…”。。。。那里有一个漂亮的小图案

当您在Snowflake数据库上查询信息\u模式时,您只得到Snowflake数据库的信息\u模式,而不是整个帐户的信息。Snowflake.information\u 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');
GRANT IMPORTED PRIVILEGES
    ON DATABASE SNOWFLAKE TO ROLE {SOME_ROLE_OF_YOURS};
现在,另外,如果您担心您遇到的错误-您没有访问雪花数据库的权限,那么我会说您要么没有使用accountadmin角色,要么没有使用具有正确权限的角色。如果要为Snowlfake数据库授予角色权限,可以运行以下操作:

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');
GRANT IMPORTED PRIVILEGES
    ON DATABASE SNOWFLAKE TO ROLE {SOME_ROLE_OF_YOURS};

祝你好运

数据库用户是否具有访问信息\u架构的权限?是否确实以accountadmin角色的身份运行此操作?作为sysadmin,这对我很有效。请注意,您不必对SNOWFLAKE数据库运行此查询。如果对任何数据库运行它,它将返回相同的结果。如果在使用SNOWFLAKE时它不起作用,请查看在尝试其他数据库时会发生什么。