【问题标题】:Create user with grant privileges on only one database创建仅对一个数据库具有授予权限的用户
【发布时间】:2019-07-03 00:03:08
【问题描述】:

我想向新用户只授予一个数据库读/写权限,这样他就可以'不访问其他数据库。


在我创建新用户后: sudo -u postgres createuser <username> 这个用户有什么权限?

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

最好的方法是什么?

使用 PostgreSQL 10

【问题讨论】:

  • 用户可能需要对数据库中架构和其他对象的额外权限。确保您已从 PUBLIC 撤销所有其他数据库的 CONNECT 权限,否则新用户可以连接到这些数据库。
  • 所以新用户获得了(公共)所有数据库的权限,我需要从公共撤销 CONNECT。之后该用户无权连接到任何数据库?然后我可以将我的数据库上的所有特权授予用户,就这样吗? :)

标签: postgresql database-permissions


【解决方案1】:

默认情况下,PUBLIC(每个人)都可以连接到所有数据库。所以你必须撤销该特权并更明智地分发CONNECT

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

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

【讨论】:

    猜你喜欢
    • 2013-10-01
    • 2021-02-05
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2015-02-16
    • 2010-11-24
    • 2016-03-21
    • 2015-07-10
    相关资源
    最近更新 更多