我的本地数据库服务器(PostgreSQL 9.4)包含几个不同的Web应用程序使用的几个数据库。每个应用程序都有一个用户帐户,该帐户是相应数据库的所有者。
我在pgAdmin3中定义了几个连接(每个Web应用程序用户帐户一个),我没有得到使用MySQL在类似设置中使用phpMyAdmin获得的行为:用户只能看到他们有权访问的数据库。
多年来,这并没有困扰我,但我终于提出了一个问题:是否有可能使它连接到pgAdmin3中的数据库服务器的用户帐户只能看到他们拥有的有限数据库集访问?我的目标是,一个受限制的用户帐户将无法看到整个可用数据库列表。
注意:撤消默认授予public
的 TEMP 和 CONNECT 权限不是解决方案。
答案 0 :(得分:0)
您可以从SELECT
撤消pg_catalog.pg_database
上的PUBLIC
权限,然后普通用户无法获取数据库列表。
但这可能会导致像pgAdmin这样的工具出错,而这些工具可以从该表中获取数据。