无需root用户即可访问postgres

时间:2013-03-04 12:46:53

标签: sql postgresql postgresql-9.1 postgresql-9.2

我在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和数据库吗?

1 个答案:

答案 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