如何更改PostgreSQL用户密码?

How to change PostgreSQL user password?

如何更改PostgreSQL用户的密码?


对于密码少登录:

1
sudo -u user_name psql db_name

如果您忘记了重置密码:

1
ALTER USER user_name WITH PASSWORD 'new_password';


然后输入:

1
$ sudo -u postgres psql

然后:

1
\password postgres

然后退出psql

1
\q

如果这不起作用,请重新配置身份验证。

编辑/etc/postgresql/9.1/main/pg_hba.conf(路径会有所不同)并更改:

1
    LOCAL   ALL             ALL                                     peer

至:

1
    LOCAL   ALL             ALL                                     md5

然后重启服务器:

1
$ sudo service postgresql restart


您可以并且应该加密用户的密码:

1
ALTER USER username WITH ENCRYPTED PASSWORD 'password';


我相信更改密码的最佳方法就是使用:

1
\password

在Postgres控制台中。

资源:

Caution must be exercised when specifying an unencrypted password with
this command. The password will be transmitted to the server in
cleartext, and it might also be logged in the client's command history
or the server log. psql contains a command \password that can be used
to change a role's password without exposing the cleartext password.

来自https://www.postgresql.org/docs/9.0/static/sql-alterrole.html。


要使用Linux命令行更改密码,请使用:

1
sudo -u <user_name> psql -c"ALTER USER <user_name> PASSWORD '<new_password>';"


转到Postgresql配置并编辑pg_hba.conf

sudo vim /etc/postgresql/9.3/main/pg_hba.conf

然后更改此行:

1
2
DATABASE administrative login BY Unix DOMAIN socket
LOCAL      ALL              postgres                                md5

至 :

1
2
DATABASE administrative login BY Unix DOMAIN socket
LOCAL   ALL             postgres                                peer

然后通过SUDO命令重启PostgreSQL服务

psql -U postgres

您现在将进入并将看到Postgresql终端

然后进入

\password

并为Postgres默认用户输入新密码,再次成功更改密码后转到pg_hba.conf并将更改还原为"md5"

现在你将登录为

psql -U postgres

用你的新密码。

如果你们都发现任何问题,请告诉我。


要为postgres用户请求新密码(不在命令中显示):

1
sudo -u postgres psql -c"\password"

这是谷歌的第一个结果,当我在寻找如何重命名用户时,所以:

1
2
ALTER USER <username> WITH PASSWORD '<new_password>';  -- change password
ALTER USER  RENAME TO <new_username>;    -- rename user

其他一些有助于用户管理的命令:

1
2
CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;

将用户移动到另一个组

1
2
ALTER GROUP  DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;

我在服务器上进行的配置定制了很多,只有在pg_hba.conf文件中设置信任身份验证后才能更改密码:

1
LOCAL   ALL   ALL   trust

不要忘记将其更改回密码或md5


对于我在安装了postgres 10.3的Ubuntu 14.04上的情况。我需要按照以下步骤操作

  • su - postgres将用户切换为postgres
  • psql进入postgres shell
  • \password然后输入您的密码
  • \q退出shell会话
  • 然后通过执行exit切换回root,并通过确保您具有以下行来配置pg_hba.conf(我的/etc/postgresql/10/main/pg_hba.conf)

    local all postgres md5

  • 通过service postgresql restart重新启动postgres服务
  • 现在切换到postgres用户并再次输入postgres shell。它会提示您输入密码。


更改密码

1
 sudo -u postgres psql

然后

1
\password postgres

现在输入新密码并确认

然后\q退出


用这个:

1
\password

输入您希望该用户使用的新密码,然后进行确认。
如果您不记得密码并想要更改密码,则可以以postgres身份登录,然后使用:

1
ALTER USER 'the username' WITH PASSWORD 'the new password';