我有几个数据库。我为登录创建了一个超级用户,但我只想让超级用户登录到一个特定的数据库。我用了
REVOKE CONNECT ON DATABASE mydatabase FROM myuser;
此命令完成且没有错误,但仍未阻止登录到数据库。我怎样才能解决我的问题?
答案 0 :(得分:1)
特殊组PUBLIC
可能仍具有数据库的连接权限,因此您运行的REVOKE
命令无效。
但我建议您使用数据目录中的pg_hba.conf
文件来实现您的目标。这两行:
host alloweddb myuser 0.0.0.0/0 md5
host all myuser 0.0.0.0/0 reject
允许myuser
通过TCP连接到alloweddb
,但会禁止连接到所有其他数据库。
修改pg_ctl reload
后,请不要忘记使用pg_hba.conf
重新加载配置文件。