我在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
答案 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
一切都可以。希望这有帮助