如何更改PostgreSQL用户的密码?
当前回答
为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
其他回答
TLDR:
在许多系统中,用户的帐户通常包含句点或某种标点符号(用户:john.smith,horise.johnson)。在这些情况下,必须对上面接受的答案进行修改。更改要求用户名加上双引号。
实例
ALTER USER "username.lastname" WITH PASSWORD 'password';
理论基础:
PostgreSQL对何时使用“双引号”和何时使用“单引号”非常挑剔。通常,当提供字符串时,您将使用单引号。
将用户“postgres”的密码更改为“postgress”:
# ALTER USER postgres WITH ENCRYPTED PASSWORD '<NEW-PASSWORD>';
如果您在Windows上。
打开pg_hba.conf文件并从md5更改为对等。
打开cmd并键入psql-postgres-postgres。
然后键入\password以提示输入新密码。
有关更多信息和详细步骤,请参阅本中帖。
通常,只需使用pgAdmin UI执行与数据库相关的活动。
如果相反,您更专注于为本地开发、CI等自动化数据库设置。
例如,可以使用这样的简单组合。
(a) 通过Jenkins创建一个虚拟超级用户,命令如下:
docker exec -t postgres11-instance1 createuser --username=postgres --superuser experiment001
这将在PostgreSQL数据库中创建一个名为experience001的超级用户。
(b) 通过运行NON Interactive SQL命令为该用户提供一些密码。
docker exec -t postgres11-instance1 psql -U experiment001 -d postgres -c "ALTER USER experiment001 WITH PASSWORD 'experiment001' "
PostgreSQL可能是命令行(非交互式)工具的最佳数据库。创建用户、运行SQL、备份数据库等。
一般来说,PostgreSQL都是非常基础的,将其集成到开发设置脚本或自动化CI配置中总体来说非常简单。
要在没有密码的情况下登录,请执行以下操作:
sudo -u user_name psql db_name
如果您忘记了重置密码:
ALTER USER user_name WITH PASSWORD 'new_password';
推荐文章
- 如何关闭mysql密码验证?
- 查询JSON类型内的数组元素
- 获得PostgreSQL数据库中当前连接数的正确查询
- 纬度和经度的数据类型是什么?
- 如何在PostgreSQL中临时禁用触发器?
- 输入文件似乎是一个文本格式转储。请使用psql
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何添加列,如果不存在PostgreSQL?
- 如何在Postgres中获得两个字段的MIN() ?
- 截断Postgres数据库中的所有表
- 如何连接列在Postgres选择?
- 将varchar字段的类型更改为整数:"不能自动转换为整数类型"
- PostgreSQL可以索引数组列吗?