【发布时间】:2022-01-06 03:13:17
【问题描述】:
我试图弄清楚如何使用特定用户打开 psql 控制台。
假设我有两个超级用户:postgres 和 new_user。当我在 psql 控制台中运行 \du 时,我可以看到它们。
当我运行sudo -u postgres psql时,我可以成功打开psql控制台,我看到:postgres=#
如果我运行sudo -u new_user psql,我会得到一个错误:
sudo: unknown user: new_user
sudo: unable to initialize policy plugin
即使我能够创建一个新数据库并将 new_user 设置为所有者:
postgres=# CREATE DATABASE newdb OWNER new_user;
我也没有找到在 psql 控制台中切换用户的方法。 我做错了什么?
提前致谢。
【问题讨论】:
-
sudo -u更改了您的 Linux 用户 - 您显然只创建了一个 database 用户。所以使用psql -U new_user(不带sudo!)就足够了 -
@a_horse_with_no_name,非常感谢!我设法以这种方式切换用户:1.
sudo su2.psql -h localhost -U new_user -
没有必要为此使用
sudo。一开始以 root 身份运行 psql 是一个非常糟糕的主意。 -
@a_horse_with_no_name,你是对的。它可以在没有 sudo 的情况下工作。谢谢
标签: linux postgresql psql