Postgres服务器密码重置不起作用

时间:2016-03-17 14:34:56

标签: postgresql

我在Windows服务器上运行Postgresql server 8.2。我正在尝试重置root postgres帐户密码而且没有任何运气。到目前为止,我已完成以下工作:

编辑pg_hba.conf以允许:

 local  all   all   trust

然后我重新启动了postgres服务器,因此可以应用更改。

然后我打开命令提示符并将目录更改为包含所有postgres .exe文件的postgres安装文件夹的bin文件夹。

根据我的理解,我应该键入以下内容:

psql -U postgres

此时它应该让我输入并输入:

 ALTER USER postgres with password 'newpassword';

然而,它一直提示我输入用户postgres的密码:

它似乎没有起作用。所以根据我的理解,pg_hba.conf中的信任本地规则似乎并没有真正正常工作。

更新

我的pg_hba.conf文件中只包含以下未注释的标记:

host  all  all  127.0.0.1/32  trust
local  all   all   trust
host  all  all  ::1/128  md5

1 个答案:

答案 0 :(得分:0)

您似乎要求更改操作系统密码的用户。 Postgres用户是操作系统上的用户。

另外,由于基于主机的身份验证(HBA)中的安全层次结构,您已被锁定

host  all  all  127.0.0.1/32  trust
local  all   all   trust
-> host  all  all  ::1/128  md5 <-
  

NB Loopback Address - :: 1/128   :: 1/128是本地主机的环回地址,相当于IPv4中的127.0.0.1。

如果未设置postgres用户密码(如在操作系统用户中),则存储postgresq用户密码

%APPDATA%\postgresql\pgpass.conf

参考Location of postgresql default user password if not set

  

在Unix系统上,.pgpass上的权限必须禁止访问世界或组;通过命令chmod 0600~ / .pgpass实现此目的。如果权限不如此严格,则将忽略该文件。在Microsoft Windows上,假定该文件存储在安全的目录中,因此不会进行特殊权限检查。

如果您愿意,可以更新基于主机的身份验证(HBA)文件;在操作系统或Windows 上更改postgres用户的密码然后从 psql

一切都可以。

希望这有帮助