我应该为PostgreSQL中的每个用户创建一个数据库吗?

我应该为PostgreSQL中的每个用户创建一个数据库吗?,postgresql,createuser,Postgresql,Createuser,我的问题是:当我创建一个与默认的postgres用户不同的PostgreSQL用户时,我是否也应该为该用户创建一个要连接的新数据库 这样的设置有什么意义?一些解释: 不要将postgres数据库用于用户数据。它用于管理目的,例如,如果要运行CREATE database,则作为要连接的数据库 这与用户无关 用户是集群范围的,也就是说,集群中的所有数据库共享相同的用户。请注意,这并不意味着每个用户都可以连接到每个数据库 PostgreSQL命令行程序有两个默认值: 如果未指定数据库用户,则默认

我的问题是:当我创建一个与默认的
postgres
用户不同的PostgreSQL用户时,我是否也应该为该用户创建一个要连接的新数据库

这样的设置有什么意义?

一些解释:

  • 不要将
    postgres
    数据库用于用户数据。它用于管理目的,例如,如果要运行
    CREATE database
    ,则作为要连接的数据库

    这与用户无关

  • 用户是集群范围的,也就是说,集群中的所有数据库共享相同的用户。请注意,这并不意味着每个用户都可以连接到每个数据库

  • PostgreSQL命令行程序有两个默认值:

    • 如果未指定数据库用户,则默认为与操作系统用户一样被调用的数据库用户

    • 如果未指定数据库,则默认为与数据库用户同名的数据库

我认为是这最后一次违约激发了你的问题。 这只是一个默认值,不应影响数据库设计。

  • 为每个单独的数据体创建一个数据库,就像属于一个应用程序的所有数据一样

  • 根据应用程序和数据维护过程的需要创建用户。为不同的任务使用不同的用户是一个好主意。例如,应用程序不应使用执行备份的用户连接到数据库


否。即使是本地管理员用户,您也不需要通过
sudo
,您只需将
export PGDATABASE=postgres
添加到
.bashrc
.profile
。我总是使用本地用户的名称创建一个新的超级用户,并在必要时配置
pg_hba.conf
以允许本地连接