我的问题是:当我创建一个不同于默认postgres
用户的 PostgreSQL 用户时,我是否还应该为该用户创建一个新的数据库来连接?
这样的设置有什么意义?
我的问题是:当我创建一个不同于默认postgres
用户的 PostgreSQL 用户时,我是否还应该为该用户创建一个新的数据库来连接?
这样的设置有什么意义?
几个解释:
不要将postgres
数据库用于用户数据。它用于管理目的,例如,如果您想运行CREATE DATABASE
.
这与用户无关。
用户是集群范围的,即集群中的所有数据库共享相同的用户。请注意,这并不意味着每个用户都可以连接到每个数据库。
PostgreSQL 命令行程序有两个默认值:
如果不指定数据库用户,则默认为与操作系统用户一样调用的数据库用户。
如果不指定数据库,则默认为与数据库用户同名的数据库。
我认为这是最后一个默认设置激发了您的问题。 这只是一个默认值,不应影响您的数据库设计。
为每个单独的数据体创建一个数据库,就像属于一个应用程序的所有数据一样。
根据您的应用程序和数据维护程序的需要创建用户。为不同的任务使用不同的用户是个好主意。例如,您的应用程序不应使用执行备份的用户来连接数据库。
不,即使它是本地管理员用户,所以您不需要通过sudo
,您应该只添加export PGDATABASE=postgres
到您的.bashrc
or .profile
。我总是用我的本地用户名创建一个新的超级用户,并pg_hba.conf
在必要时配置为允许本地连接。