我有多个数据库,每个数据库都有多个模式。像这样:
db1
schema1
schema2
db2
schema1
schema2
db3
schema1
schema2
我需要授予对someuser *仅* db1.schema2 的访问权限。
在 pg_hba.conf 中,我可以限制哪个用户连接到哪个数据库。在 schema1 中,我可以撤销使用并创建权限。
此时 someuser 只能连接到 db1,并且只能在 schema2 而不能在 schema1 中创建表。
但是,用户可以查看schema1中表的结构。
是否可以避免某些用户查看schema1中表的结构?
最佳答案
首先,模式没有在 hba.conf 文件中使用。您正在寻找的只是授予和撤销。您想要从角色或公共(public)角色中撤销模式的“使用”。根据文档,还有其他方法(即系统表)可以查询此信息,但它会将其隐藏在前端。简而言之,没有办法绝对拒绝所有查看表格描述的方式,而且显然设计者认为没有必要实现这样的功能。 查看讨论 here
撤销模式的使用:
revoke usage on schema myschema from myrole
关于postgresql - 如何限制对模式的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20201436/