2013-03-04 751 views
0

我在postgres中创建了一个名为“databaseName”的postgres数据库。现在,我可以通过以root用户身份访问postgres

su - postgres 

再访问此data2database输入我的密码

然后我进入数据库通过:PSQL的databaseName

我已经通过创建该数据库的用户:

createuser -P userName1 

现在我不希望数据库的用户以root用户的身份访问数据库。现在,当用户尝试登录到Postgres的作为

su - postgres -u userName1 
     or through 
psql databaseName -u userName1 

我得到错误...有人可以指导我一下,用户可以如何访问的Postgres和数据库没有被root用户?

+0

请不要写“我得到错误”。什么错误?究竟?将确切的错误文本复制并粘贴到您的问题中。 – 2013-03-04 13:04:06

+0

@CraigRinger当然,我会记住这一点 – user1778824 2013-03-04 13:14:03

回答

5

配置pg_hba.conf接受peer连接通过unix套接字或ident连接通过host(tcp)连接。如果您愿意,您可以使用md5来代替使用密码验证。

默认情况下,psql将使用与本地操作系统用户名相同的用户名连接;这可以通过-U标志,如覆盖:

psql -U myusername thedatabase 

注意,这不是-U-u(这是大写)。

这一切都在PostgreSQL文档中详细介绍;见:

顺便说一句,如果你想为postgres用户身份运行命令,而不是su“荷兰国际集团,你可以这样写:

sudo -u postgres psql 
+0

非常感谢您的回复。我是postgres的新手,因此我不知道如何配置ph_hba.conf。我会非常感谢,如果你可以指导我配置它..我正在通过命令行界面在Linux服务器上工作。再次热烈地感谢您回复 – user1778824 2013-03-04 13:13:30

+0

@ user1778824阅读文档的“客户端身份验证”一章,它听起来可以解释您需要的一切。我不能只告诉你如何配置它;如果有一个正确的方法来设置它,我们不会将它设置为配置文件,我们只需要让服务器自动以这种方式工作。这是一个配置文件,因为不同的人希望Pg针对不同的情况工作不同的方式。 – 2013-03-04 13:15:09

+0

@ user1778824不知道你的确切需求和情况,很难说出你需要什么 - 特别是你没有提到你的发行版,显示你当前的'pg_hba.conf',说你想如何认证用户,等等。 – 2013-03-04 13:17:13

相关问题