【问题标题】:Hide database from a role in Snowflake从雪花中的角色隐藏数据库
【发布时间】:2019-11-27 01:35:25
【问题描述】:
我在ACCOUNTADMIN 下尝试了REVOKE ALL ON DATABASE ABC FROM ROLE XYZ 并得到了成功消息。
当我切换到角色 XYZ 时,我仍然看到 ABC 数据库,但它显示为空。在此角色下运行show databases 时,数据库也仍在列表中。
如何让这个角色根本看不到数据库?
顺便说一句,这个问题会阻止我们与 Snowflake 的 Mode 连接在 UI 中列出可用的表。
【问题讨论】:
标签:
snowflake-cloud-data-platform
【解决方案1】:
创建两个数据库:db1 和 db2,例如,使用 ACCOUNTADMIN 角色:
创建数据库 db1;
创建数据库db2;
然后创建两个角色,一个用于数据库 db1,另一个用于数据库 db2
创建角色 db1;
创建角色 db2;
现在,将数据库 db1 的使用权授予角色 db1,与角色 db2 类似。
将数据库 db1 的使用权授予角色 db1;
将数据库 db2 的使用权授予角色 db2;
当您切换到角色 db2 时,您不会看到 db1 数据库,反之亦然。
另外,当你运行时:
显示数据库;
说,当您将角色设置为 db1 时,
您不会在结果中看到数据库 db2。
希望这会有所帮助。
【解决方案2】:
就我而言,我也有使用情况监控,因此必须执行revoke MONITOR USAGE on account from role XYZ。我怀疑这是一个非常极端的案例,不会影响很多人。 :(