仅在一个数据库上创建具有授予特权的用户

时间:2019-02-08 17:36:01

标签: postgresql database-permissions

我想向新用户 授予 读/写特权 ,这样他就可以无法访问其他数据库。


使用以下方法创建新用户后: sudo -u postgres createuser <username>该用户获得什么特权?

这就是我所需要的吗: GRANT ALL PRIVILEGES ON my_db TO new_user;只能访问一个数据库?

最好的方法是什么?

使用PostgreSQL 10

1 个答案:

答案 0 :(得分:1)

默认情况下,PUBLIC(所有人)被允许连接到所有数据库。因此,您必须撤销该特权,并更加明智地分发CONNECT

除此之外,您还必须确保每个用户在“他的&rdqou;中的所有模式上都拥有CREATE数据库和所有表上的必要特权,因为数据库本身的特权不足以访问数据库中 中的对象。

使用REASSIGN OWNED授予用户“ his&rdqou;中所有对象的所有权”可能是最简单的解决方案。数据库。