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

Eri*_*uez 4 postgresql createuser

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

这样的设置有什么意义呢?

Lau*_*lbe 7

一些解释:

  • 不要将postgres数据库用于用户数据。它用于管理目的,例如,如果您想运行CREATE DATABASE.

    这与用户无关。

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

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

    • 如果不指定数据库用户,则默认是像操作系统用户一样调用的数据库用户。

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

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

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

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