PostgreSQL,1 个服务器,X 个用户,X 个独立环境

PostgreSQL,1 个服务器,X 个用户,X 个独立环境

我是 PostgreSQL 数据库的新手,有些问题已经解决了,其他问题与 MySQL 中的问题相同。我有个问题,如何最简单地将用户与数据库中的其他对象分开添加。

我想创建用户,应该有 template1 的权限。他必须可以创建数据库并可以登录。我希望她的数据库只有她可见。我希望她不列出/查看/对以这种方式创建的其他用户数据库拥有任何权限。

有什么简单的解决办法可以解决这个问题?

感谢帮助

答案1

最简单的方法是要求用户与数据库同名,并配置pg_hba.conf所有用户仅限于sameuser数据库。例如:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD
host    sameuser        all             0.0.0.0/0               md5

除了列出可以单独访问所有数据库的管理帐户外,您还需要添加此内容。如果您知道用户将要连接的 IP 地址,请更改0.0.0.0/0为匹配。如果用户是通过本地套接字而不是通过 TCPIP 进行连接,请将 TYPE 更改为local并删除地址列。该md5方法意味着需要密码。您还需要为template1数据库添加一行,以允许所有用户访问。

至于不允许他们查看其他用户的数据库根本,我不确定你能做什么,因为它们列在 pg_catalog 模式中,并由psql -l

相关内容