我在Ubuntu 9.04下使用PostgreSQL 8.3。 我使用控制台客户端或Pgadmin III访问我的数据库服务器。 目前,我需要限制只能访问数据库中的几个模式,也不要在服务器上显示其他数据库。
例如,我目前的postgres服务器有以下数据库:
postgres-8.3-server |-- db1 | |-- sch_a | |-- sch_b | |-- sch_c | `-- sch_d |-- db2 | |-- sch_e | |-- sch_f | `-- sch_g `-- db3 `-- sch_h
我需要限制angular色“joe”来访问只有db2的sch_e和shc_g,也不要在同一个数据库中显示其他模式。 列出数据库时,输出结果应该是:
postgres-8.3-server |-- db2 |-- sch_e `-- sch_g
我目前的解决scheme限制模式和数据库访问,但我仍然可以看到数据库名称列表。 当我尝试访问其中的任何一个(除了允许的那个)之外,我收到一条关于在pg_hba.conf文件中找不到的特定条目的消息,这很好,但不是很理想。
我目前正在查看手册和谷歌search更多的信息。
提前致谢
您无法限制查看存在哪些数据库的能力。 但是,为什么这么做呢,因为你可以限制连接的能力?
如果你喜欢不同的错误信息,你可以尝试让人们通过pg_hba.conf,然后限制数据库本身的CONNECT权限(REVOKE CONNECT ON DATABASE foo FROM public; GRANT CONNECT ON DATABASE foo TO somerole;)