Ubuntu 24.04
Sponsored Link

PostgreSQL 16 : リモート接続の設定2024/05/30

 

PostgreSQL デフォルトではこちらに記載の通り、ローカルホストからのみの接続許可となっていますが、 他ホストからも接続したい場合は以下のように設定します。

[1] 認証方式は多々ありますが、当例では scram-sha-256 パスワードによる認証方式を設定します。
root@www:~#
vi /etc/postgresql/15/main/postgresql.conf
# 60行目 : コメント解除して変更

listen_addresses = '
*
'
root@www:~#
vi /etc/postgresql/15/main/pg_hba.conf
# 最終行に追記
# [ADDRESS] には接続を許可するネットワークを指定
# 全て許可する場合は [0.0.0.0/0]
# [DATABASE], [USER] 列で接続許可するデータベースやユーザーも限定可
host    all             all             10.0.0.0/24             scram-sha-256

root@www:~#
systemctl restart postgresql

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

ubuntu@www:~$
psql -d testdb

psql (16.2 (Ubuntu 16.2-1ubuntu4))
Type "help" for help.

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

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

postgres@dlp:~$
psql -c "alter user ubuntu with password 'password';"

ALTER ROLE
[3] 設定が完了したら、PostgreSQL でアクセス許可を設定したネットワーク内の任意のホストから接続確認をしておきます。 scram-sha-256 認証での接続は自動的に TLS による暗号化通信となります。
root@node1:~#
psql -h www.srv.world -d testdb -U ubuntu

Password for user ubuntu:   # 設定したパスワード
psql (16.2 (Ubuntu 16.2-1ubuntu4))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

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