我在一个公开可见的服务器上创建了一个PostgreSQL数据库。
有几个用户,但我想只有2-3个用户可以访问系统中的数据库。所有人都应该能够读写数据。
那么如何限制其他用户呢?有可能吗?
答案 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