如何限制对模式的访问?

时间:2013-11-25 19:21:56

标签: postgresql postgresql-8.4

我有多个数据库,每个数据库都有多个模式。像这样:

db1
    schema1
    schema2
db2
    schema1
    schema2
db3
    schema1
    schema2

我只需要将 someuser *的访问权限授予* db1.schema2。

在pg_hba.conf中,我可以限制哪个用户连接到数据库。在schema1中,我可以撤消使用并创建权限。

此时 someuser 只能连接到db1,只能在schema2中创建表而不能在schema1中创建表。

但是,用户可以在schema1中查看表的结构。

是否可以避免 someuser 查看schema1中表格的结构?

1 个答案:

答案 0 :(得分:3)

首先,hba.conf flie中没有使用模式。你正在寻找的只是补助和撤销。您希望从角色或公共角色撤消架构的“使用”。根据文档,还有其他方法(即系统表)来查询此信息,但它会将其隐藏在前端。简而言之,没有办法绝对否定所有看表格描述的方式,显然设计师并不认为需要实现这样的功能。 请参阅讨论here

撤销架构的使用:

revoke usage on schema myschema from myrole