如何从多个用户限制postgresql中的数据库

时间:2016-02-26 16:21:39

标签: postgresql

我在一个公开可见的服务器上创建了一个PostgreSQL数据库。

有几个用户,但我想只有2-3个用户可以访问系统中的数据库。所有人都应该能够读写数据。

那么如何限制其他用户呢?有可能吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,连接到数据库的权限授予public角色。

所以你需要做的第一件事就是撤销它。为此,请以超级用户(通常为postgres)登录该数据库,例如

psql -U postgres new_database

然后在SQL提示符下运行:

revoke connect on database new_database from public;

然后您需要为每个用户授予权限:

grant connect on database new_database to user_1;
grant connect on database new_database to user_2;

new_database替换为您创建的数据库的名称。

您还可以通过pg_hba.conf控制对服务器的访问,但这有点复杂。有关详细信息,请参阅手册:http://www.postgresql.org/docs/current/static/client-authentication.html