如果在 linux 中使用 postgres,它有一个postgres
用户。所以当psql
从这个用户使用时,它会在这个用户下生成一个.psql_history
文件 - /home/postgres/.psql_history。
在 linux 服务器上设置很多用户时,他们都想psql
在他们的会话下使用/home/user1
. 如何让他们使用psql
并为他们每个人生成 psql 历史记录?
像这些
- /home/user1/.psql_history
- /home/user2/.psql_history
- /home/.../.psql_history
是否需要为每个用户安装 postgres 客户端?
为每个人创建 unix 用户帐户,并在 pg_ident 中设置用户名映射,以便每个人都作为 postgres 连接。
https://www.postgresql.org/docs/10/auth-username-maps.html
或者为每个帐户创建单独的数据库用户并为他们提供超级用户权限。如果您希望 postgres 拥有新的关系,可以选择“设置会话身份验证 postgres”作为启动操作在 ~/.psqlrc 中设置 - 如果每个人都已经是超级用户,这并没有太大区别。
不是理想的配置
PostgreSQL 的创建使得数据库内部的权限旨在直接镜像系统。你可以解决这个问题,它不会太痛苦,但你应该
psql
按照你user1
的user2
例子运行。现在你要求做的是一个特别糟糕的主意。
postgres
不是普通用户,是超级用户。这些用户可以DROP DB
并且随意TRUNCATE
。您可能不希望共享该帐户。但是假设您不想授予每个用户连接到数据库或创建新数据库的能力。这并不理想,但如果您想这样做,有一些机制可以帮助您,尽管受上述警告的影响,我永远不会与
postgres
用户共享访问权限。环境变量
使用
HISTFILE
orPSQL_HISTORY
or 环境变量,你可以这样做
使用须藤
你也可以做
sudo -E
(-E
是--preserve-env
)观察,您可以通过上面的
-E
标志看到我们获取调用sudo
的用户目录,而不是您要更改为的用户。因此,您可以postgres
通过执行此操作以身份登录并将历史记录记录到您的主目录,现在你只需要决定你想给谁这个非常危险的访问权限!