在 OSX 中更改我的 postgresql 密码?

all*_*tta 1 postgresql osx-lion

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

对此有什么解决方案(我在 OSX 上)?

Cra*_*ger 5

您混淆了有关安全模型的几个不同概念。

有一个postgres操作系统用户,PostgreSQL 服务器运行该用户以隔离其数据文件并在出现安全漏洞或应用程序错误时限制损坏。PostgreSQL 不会因为root安全性而运行。此用户通常没有密码,但您可以使用 root 帐户更改密码sudo- 您可以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”是“基于主机的身份验证”)以md5localhost连接使用身份验证。
  • 重新启动或重新加载 PostgreSQL

同样,如果要允许任何系统用户以任何数据库用户的身份无需密码进行连接,则必须修改pg_hba.conf并设置trustlocalhost连接类型的身份验证方式。请仅将trust身份验证用于测试。

要了解更多信息,请参阅PostgreSQL 文档中的客户端身份验证章节