我在ACCOUNTADMIN下尝试了REVOKE ALL ON DATABASE ABC FROM ROLE XYZ,得到了一个成功的消息。
当我切换到角色XYZ时,我仍然可以看到ABC数据库,但它显示为空。在此角色下运行show databases时,数据库也仍在列表中。
如何才能使此角色根本看不到数据库?
顺便说一句,这个问题会阻止我们的Snowflake模式连接在UI中列出可用的表。
发布于 2019-11-27 10:33:04
例如,使用ACCOUNTADMIN角色创建两个数据库: db1和db2:
创建数据库db1;创建数据库db2;
然后创建两个角色,一个用于数据库db1,另一个用于数据库db2
创建角色db1;创建角色db2;
现在,将数据库db1上的usage授予角色db1,与角色db2类似。
向角色db1授予对数据库db1的使用权限;向角色db2授予对数据库db2的使用权限;
当您切换到角色db2时,您将看不到db1数据库,反之亦然。此外,在运行以下命令时:
显示数据库;
比方说,当您将角色设置为db1时,您将不会在结果中看到数据库db2。
希望这能有所帮助。
发布于 2019-11-27 14:47:33
在我的例子中,我也有使用监控,因此必须使用revoke MONITOR USAGE on account from role XYZ。我怀疑这只是一个非常角落的案例,不会影响很多人。:(
https://stackoverflow.com/questions/59061801
复制相似问题