我在REVOKE ALL ON DATABASE ABC FROM ROLE XYZ
下尝试了ACCOUNTADMIN
,并收到了一条成功消息。
当我切换到角色XYZ
时,仍然看到ABC
数据库,但它显示为空。在该角色下运行show databases
时,数据库仍在列表中。
如何使该角色完全看不到数据库?
顺便说一句,此问题阻止我们与Snowflake的Mode连接列出UI中的可用表。
答案 0 :(得分:0)
例如,使用ACCOUNTADMIN角色创建两个数据库:db1和db2:
创建数据库db1; 创建数据库db2;
然后创建两个角色,一个用于数据库db1,另一个用于数据库db2
创建角色db1; 创建角色db2;
现在,将数据库db1上的用法授予角色db1,与角色db2类似。
将数据库db1上的使用授予角色db1; 将数据库db2上的用法授予角色db2;
切换到角色db2时,您将看不到db1数据库,反之亦然。 另外,当您运行时:
显示数据库;
说,当您将角色设置为db1时, 您将不会在结果中看到数据库db2。
希望这会有所帮助。
答案 1 :(得分:0)
就我而言,我还具有使用情况监视功能,因此必须执行revoke MONITOR USAGE on account from role XYZ
。我怀疑这是一个极端的案例,不会影响很多人。 :(