1

在雪花数据库中,我可以有一个显示所有数据库名称的报告

SELECT * from information_schema.databases; 

在每个数据库中,我可以选择所有模式名称

select catalog_name as database,
       schema_name
from   snowflake.information_schema.schemata
order  by database, schema_name asc;

我想要一份报告来显示每个人的数据库及其架构。我怎样才能做到这一点?

太感谢了!

4

2 回答 2

2

要获取帐户中的所有模式,您可以执行此操作(请注意,它仅报告当前角色拥有的权限):

show schemas in account;

如果要过滤结果,可以在运行 show 后立即使用 result_scan,这是一个元数据查询。它可能看起来像这样:

select "database_name" as DATABASE_NAME
"name" as SCHEMA_NAME
from table(result_scan(last_query_id()))
where SCHEMA_NAME not in ('INFORMATION_SCHEMA') -- optional filter(s)
;
于 2020-07-06T14:22:24.353 回答
1

您可以使用ACCOUNT_USAGE 视图生成包含帐户中所有数据库及其各自架构的报告。

select db.database_Name, sch.schema_name  
from SNOWFLAKE.account_usage.databases db 
inner join SNOWFLAKE.account_usage.schemata sch 
   ON  db.database_name = sch.catalog_name 
group by 1,2 order by 1;

注意:只有有权访问当前角色的 schmeas 才会可见。对于数据库和模式的整个列表,请使用 ACCOUNTADMIN 角色。

于 2020-07-06T11:28:13.527 回答