PostgreSQL重新读取pg_hba.conf文件

时间:2023-03-10 01:56:54
PostgreSQL重新读取pg_hba.conf文件

PostgreSQL  配置文件之pg_hba.conf

该文件用于控制访问安全性,管理客户端对于PostgreSQL服务器的访问权限,内容包括:允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模式。

# Database administrative login by Unix domain socket
local all postgres trust # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.199.1/24 md5
host all all 172.30.0.1/24 md5

场景:对于新机器A初次链接服务器B的pg数据库,如果A的网段不在B的配置中被允许,那么需要添加到配置才可正常链接。例如添加A(192.168.200.58):

host    all             all             192.168.200.1/24        md5

编辑完配置,PostgreSQL 重新读取pg_hba.conf文件生效:

service postgresql reload

参考自:改文件配置详解


开启远程连接

1. 修改postgresql.conf

postgresql.conf存放位置在/etc/postgresql/10/main下,编辑或添加下面一行,使PostgreSQL可以接受来自任意IP的连接请求:

listen_addresses = '*'

2. 修改pg_hba.conf

pg_hba.conf位置与postgresql.conf相同,默认pg只允许本机通过密码认证登录,修改为上面内容后即可以对任意IP访问进行密码验证。

# TYPE  DATABASE  USER  CIDR-ADDRESS  METHOD
host all all 0.0.0.0/ md5

3. 重启

sudo service postgresql restart

psql

1,登录远程服务器的PG

psql -h 192.168.199.17 -p  socweb postgres

2,执行sql文件中命令,无需先登录数据库

psql -U postgres -d tcp_scans -f .sql

3,在Shell中直接创建、删除PG数据库

createdb -U postgres -O postgres abc  # -O 指定拥有者Owner
dropdb -U postgres abc # 删除abd库