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/0 md5
3. 重啟
sudo service postgresql restart
psql
1,登錄遠程服務器的PG
psql -h 192.168.199.17 -p 5432 socweb postgres
2,執行sql文件中命令,無需先登錄數據庫
psql -U postgres -d tcp_scans -f 1.sql
3,在Shell中直接創建、刪除PG數據庫
createdb -U postgres -O postgres abc # -O 指定擁有者Owner
dropdb -U postgres abc # 刪除abd庫