CentOS Stream 9
Sponsored Link

PostgreSQL 13 : リモート接続の設定
2022/03/17
 
PostgreSQL デフォルトではこちらに記載の通り、ローカルホストからのみの接続許可となっていますが、 他ホストからも接続したい場合は以下のように設定します。
[1] 認証方式は多々ありますが、当例では MD5 パスワードによる認証方式を設定します。
[root@www ~]#
vi /var/lib/pgsql/data/postgresql.conf
# 60行目 : コメント解除して変更
# IPv4 のみをリスンする場合は '0.0.0.0' を指定

listen_addresses = '
*
'
[root@www ~]#
vi /var/lib/pgsql/data/pg_hba.conf
# 最終行に追記

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident
# [ADDRESS] には接続を許可するネットワークを指定
# 全て許可する場合は [0.0.0.0/0]
# [DATABASE], [USER] 列で接続許可するデータベースやユーザーも限定可
host    all             all             10.0.0.0/24             md5

[root@www ~]#
systemctl restart postgresql

[2] Firewalld を有効にしている場合は、サービスの許可が必要です。
[root@www ~]#
firewall-cmd --add-service=postgresql

success
[root@www ~]#
firewall-cmd --runtime-to-permanent

success
[3] 任意の PostgreSQL ユーザーでパスワード認証でデータベースへ接続するために、パスワードをセットしておきます。
# 自身が所有するデータベースに接続

[cent@www ~]$
psql -d testdb

psql (13.5)
Type "help" for help.

# 自身のパスワードを設定/変更
testdb=> \password
Enter new password:
Enter it again:
testdb=> \q

# PostgreSQL 管理ユーザーから任意のユーザーのパスワードを設定/変更する場合は以下

[postgres@www ~]$
psql -c "alter user cent with password 'password';"

ALTER ROLE
[4] 設定が完了したら、PostgreSQL でアクセス許可を設定したネットワーク内の任意のホストから接続確認をしておきます。
[root@node01 ~]#
psql -h www.srv.world -d testdb -U cent

Password for user cent:   # 設定したパスワード
psql (13.5)
Type "help" for help.

testdb=> # 接続できた
関連コンテンツ