我是 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