我在postgres中创建了一个名为“databaseName”的postgres数据库。现在我可以通过
访问这个data2database su - postgres
然后输入我的密码
然后我通过以下方式进入数据库:psql databaseName
我已通过以下方式创建了此数据库的用户:
createuser -P userName1
现在我不希望数据库的用户以root用户身份访问数据库。现在,当用户尝试登录postgres时
su - postgres -u userName1
or through
psql databaseName -u userName1
我收到错误...有人可以指导用户如何在不是root用户的情况下访问postgres和数据库吗?
答案 0 :(得分:6)
配置pg_hba.conf
以通过peer
(tcp)连接上的unix套接字或ident
连接接受host
连接。如果您愿意,可以使用md5
代替密码验证。
默认情况下,psql
将使用与本地操作系统用户名相同的用户名连接;这可以被-U
标志覆盖,例如:
psql -U myusername thedatabase
请注意,-U
不是-u
(大写)。
PostgreSQL文档中详细介绍了这一点;见:
顺便说一句,如果你想以postgres
用户身份运行命令,而不是su
,你可以写:
sudo -u postgres psql