PostgreSQL默认密码详解

1、pgsql默认密码

PostgreSQL在安装时默认密码设置为“postgres”,给数据库安全带来了隐患。因此,在安装PostgreSQL之后,最好更改初始密码,以提高数据库的安全性。

下面是一个更改初始密码的示例:

# 进入PostgreSQL Shell(psql)
> sudo -u postgres psql

# 更改密码
postgres=# ALTER USER postgres WITH PASSWORD 'new_password';

2、postgresql更改密码

更改PostgreSQL用户密码的方法已经在第一部分中介绍过,可以使用ALTER USER语句更改任何用户的密码。 但是,某些情况下,用户可能忘记了他们的密码或无法使用超级用户(如postgres)更改密码。 在这种情况下,您可以使用以下步骤更改postgres用户的密码:

  1. 停止PostgreSQL服务器;
# 停止PostgreSQL服务
> sudo systemctl stop postgresql
  1. 编辑pg_hba.conf文件,允许本地访问
$ sudo vim /var/lib/pgsql/data/pg_hba.conf

在文件的最后添加以下内容:

#添加如下内容即可:
host    all     all     127.0.0.1/32    md5
  1. 以身份验证的方式启动PostgreSQL;
# 以身份验证的方式启动PostgreSQL
> sudo PGSETUP_INITDB_OPTIONS="--auth-host=md5" /usr/pgsql-13/bin/pg_ctl start -D /var/lib/pgsql/13/data -l logfile
  1. 使用以下命令更改postgres用户的密码。
> psql -U postgres
> \password postgres

输入新密码并按Enter键,之后要求再次输入新密码以确认。 登录的密码现在已更改为您输入的新密码。

3、设置PostgreSQL数据库密码

以下演示如何设置postgresql数据库密码和超级用户postgres的密码。

  1. 重新启动PostgreSQL,并使用以下命令更改postgres用户的密码。
> sudo systemctl restart postgresql
> sudo -u postgres psql
> ALTER USER postgres with encrypted password 'your-password';
  1. 修改pg_hba.conf以允许远程连接;
> sudo vim /var/lib/pgsql/13/data/pg_hba.conf

在文件最后添加以下内容:

# 添加如下内容:
host    all       all      0.0.0.0/0         md5
  1. 修改postgresql.conf文件以允许远程连接
> sudo vim /var/lib/pgsql/13/data/postgresql.conf

找到听连接字符串,其可如以下所示:

#监听地址
listen_addresses = 'localhost'    

修改为以下内容

listen_addresses = '*'
  1. 重启PostgreSQL。
> sudo systemctl restart postgresql

4、忘记postgresql密码,怎么办

如果您忘记了postgres用户的密码,那我们可以通过以下步骤重置。

  1. 编辑pg_hba.conf文件,允许本地访问
$ sudo vim /usr/pgsql-14/data/pg_hba.conf

在文件的最后添加以下内容:

host    all     all     127.0.0.1/32    trust
  1. 停止PostgreSQL服务器
> sudo systemctl stop postgresql
  1. 以不需要密码的方式启动PostgreSQL
> sudo systemctl start postgresql
> sudo -i -u postgres
$ psql
  1. 使用以下命令更改postgres用户的密码。
ALTER USER postgres with encrypted password 'your-password';
  1. 修改pg_hba.conf以禁用无密码访问
$ sudo vim /var/lib/pgsql/data/pg_hba.conf

将文件中所有的

local   all             all                                     trust
host    all             all             127.0.0.1/32            trust

替换为如下所示:

local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
  1. 重新启动PostgreSQL
> sudo systemctl restart postgresql

5、postgresql源码加密

PostgreSQL支持数据和传输功能的加密。 在某些情况下,如包含敏感数据的生产环境中,使用加密功能可以确保数据不会被未经授权的人访问。

启用PostgreSQL SSL:

# 修改postgresql.conf文件以启用SSL
listen_addresses = 'localhost' 
ssl = on
ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL'   
ssl_ca_file = '/etc/ssl/certs/ca-certificates.crt' 
ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' 
ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'

# 重启PostgreSQL服务器
sudo systemctl restart postgresql

七、查看postgresql用户密码

可以在PostgreSQL Shell中使用以下命令:

SELECT usename, passwd FROM pg_shadow;

除此之外,您还可以使用以下命令查看指定用户的密码:

SELECT passwd FROM pg_shadow WHERE usename='username';

免责声明:

1、本站资源由自动抓取工具收集整理于网络。

2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。

3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。

4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。

5、如果您喜欢本资源,请您支持作者,购买正版内容。

6、资源失效,请下方留言,欢迎分享资源链接

文章评论

0条评论