如何更改PostgreSQL用户的密码?
当前回答
我认为更改密码的最佳方法是使用:
\password
在Postgres控制台中。
根据ALTER USER文档:
使用此命令。密码将在cleartext,并且它也可能记录在客户端的命令历史记录中或服务器日志。psql包含可以使用的命令\密码在不暴露明文密码的情况下更改角色的密码。
注意:ALTER USER是ALTER ROLE的别名
其他回答
这是谷歌上的第一个结果,当时我正在研究如何重命名用户,所以:
ALTER USER <username> WITH PASSWORD '<new_password>'; -- change password
ALTER USER <old_username> RENAME TO <new_username>; -- rename user
其他一些有助于用户管理的命令:
CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;
将用户移动到其他组
ALTER GROUP <old_group> DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;
为postgres角色设置密码
sudo -u postgres psql
您将得到如下提示:
postgres=#
将用户postgres的密码更改为PostgreSQL
ALTER USER postgres WITH ENCRYPTED PASSWORD 'postgres';
您将获得以下内容:
ALTER ROLE
为此,我们需要编辑pg_hba.conf文件。
(请随意选择编辑器来替换nano。)
sudo nano /etc/postgresql/9.5/main/pg_hba.conf
在pg_hba.conf文件中更新
查找包含以下内容的未注释行(不以#开头的行)。间距略有不同,但单词应该相同。
local postgres postgres peer
to
local postgres postgres md5
现在我们需要重新启动PostgreSQL,以便更改生效
sudo service postgresql restart
我在服务器上获得的配置进行了大量定制,只有在pg_hba.conf文件中设置了信任身份验证后,我才成功更改了密码:
local all all trust
不要忘记将其改回密码或md5。
我认为更改密码的最佳方法是使用:
\password
在Postgres控制台中。
根据ALTER USER文档:
使用此命令。密码将在cleartext,并且它也可能记录在客户端的命令历史记录中或服务器日志。psql包含可以使用的命令\密码在不暴露明文密码的情况下更改角色的密码。
注意:ALTER USER是ALTER ROLE的别名
转到PostgreSQL配置并编辑文件pg_hba.conf:
sudo vim/etc/postgresql/9.3/main/pg-hba.conf
然后更改此行:
Database administrative login by Unix domain socket
local all postgres md5
to:
Database administrative login by Unix domain socket
local all postgres peer
然后通过“sudo”命令重新启动PostgreSQL服务。然后
psql-U postgres
现在您将进入并看到PostgreSQL终端。
然后输入
\密码
并为PostgreSQL默认用户输入新密码。再次成功更改密码后,转到pg_hba.conf并将更改还原为“md5”。
现在您将以身份登录
psql -U postgres
使用新密码。
推荐文章
- 如何关闭mysql密码验证?
- 查询JSON类型内的数组元素
- 获得PostgreSQL数据库中当前连接数的正确查询
- 纬度和经度的数据类型是什么?
- 如何在PostgreSQL中临时禁用触发器?
- 输入文件似乎是一个文本格式转储。请使用psql
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何添加列,如果不存在PostgreSQL?
- 如何在Postgres中获得两个字段的MIN() ?
- 截断Postgres数据库中的所有表
- 如何连接列在Postgres选择?
- 将varchar字段的类型更改为整数:"不能自动转换为整数类型"
- PostgreSQL可以索引数组列吗?