在OSX中更改我的postgresql密码?

时间:2013-07-09 02:04:17

标签: postgresql osx-lion

我正在尝试设置我的本地postgresql,因此它没有密码。我知道这必须在pg_hba.conf文件中完成,并且要加入该文件,我必须是postgres用户。但要成为postgres用户,我必须使用su postgres登录并输入我没有的密码。

任何解决方案(我在OSX上)?

1 个答案:

答案 0 :(得分:4)

您对安全模型的几个不同概念感到困惑。

有一个postgres操作系统用户,PostgreSQL服务器运行该用户是为了隔离其数据文件并在发生安全漏洞或应用程序错误时限制损坏。出于安全考虑,PostgreSQL不会以root运行。此用户通常没有密码,但您可以使用sudo通过root帐户更改密码 - 您可sudo向此用户sudo -i -u postgres添加密码。

还有一个postgres 数据库用户,默认数据库超级用户。默认情况下,此用户通常没有密码,但pg_hba.conf允许postgres操作系统用户使用postgres身份验证作为peer PostgreSQL用户进行连接。

如果需要,可以更改配置,以便为postgres数据库用户使用密码,这样您就可以从任何系统用户帐户psql -U postgres

  • ALTER USER postgres WITH ENCRYPTED PASSWORD 'blahblah';
  • 修改pg_hba.conf(“hba”是“基于主机的身份验证”),以便对md5local个连接使用host身份验证。
  • 重新启动或重新加载PostgreSQL

同样,如果您希望允许任何系统用户以没有密码的任何数据库用户身份进行连接,则必须修改pg_hba.conf并将trust设置为local和{host的身份验证模式{1}}连接类型。请仅使用trust身份验证进行测试。

要了解详情,请参阅the client authentication chapter in the PostgreSQL documentation