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

时间:2019-09-20 00:48:59

标签: postgresql createuser

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

这样的设置有什么意义?

2 个答案:

答案 0 :(得分:2)

一些解释:

  • 请勿将postgres数据库用于用户数据。它用于管理目的,例如,作为要运行CREATE DATABASE的数据库。

    这与用户无关。

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

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

    • 如果未指定数据库用户,则默认名称是被称为操作系统用户的数据库用户。

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

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

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

  • 根据您的应用程序和数据维护过程的要求创建用户。将不同的用户用于不同的任务是一个好主意。例如,执行备份的用户不应被您的应用程序用来连接数据库。

答案 1 :(得分:0)

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