有没有办法限制用户查看数据库中的所有模式? 场景:
我有一个包含多个模式的数据库。我需要为特定模式的用户提供访问权限并将其表格化。
即使我尝试撤销对该特定用户和PUBLIC组的所有访问权限,他仍然可以查看所有模式及其表。 (只有他无法查看的数据。
我尝试了下面的命令:
REVOKE ALL ON SCHEMA devops_test FROM testuser;
REVOKE ALL ON SCHEMA devops_test FROM PUBLIC;
REVOKE ALL on all tables IN SCHEMA devops_test FROM testuser;
答案 0 :(得分:0)
一旦连接到数据库,用户就可以从系统表中读取集群中所有数据库,模式,表,甚至表列的列表,即使它们无法通过这些表读取这些表中的数据使用REVOKE ALL FROM。试试这个:
REVOKE USAGE ON SCHEMA information_schema FROM PUBLIC;
REVOKE USAGE ON SCHEMA pg_catalog FROM PUBLIC;
REVOKE SELECT ON TABLE pg_catalog.pg_database FROM PUBLIC;
如果我做了一个错误的假设请发表评论,我会重新调整我的答案。