
私の質問
postgres
あるユーザー (例: ) に対して、TCP ローカルホストからのみログインでき、インターネットからはログインできないように権限を設定できますか?
信頼できるソケットとリモートのパスワード
ローカル ユーザーがパスワードなしでログインし、リモート ホストがパスワードを使用してログインできるように postgres を初期化できることはわかりました。
initdb \
-D "$POSTGRES_DATA_DIR/" \
--username postgres --pwfile "$PWFILE" \
--auth-local=trust --auth-host=password
イントラネットとインターネット
インターネット経由で接続するシステムでは、非常に強力な (記憶できない) ランダムな 128 ビット文字列を持つユーザーを使用したいと考えています。
ただし、ローカル アクセスとイントラネット アクセスの場合は、覚えられる (そして入力できる) ユーザー名とパスワードを使用できるようにすることをお勧めします。
これってできますか...それとも、接続が許可されているシステムごとに 1 人のユーザーを設定し、.pgpass
それぞれに を設定する必要があるのでしょうか?
(コンピューター間でプレーンテキスト ファイル内のキーを共有したくありません)
答え1
PostgreSQL のバージョンに関する情報が提供されていないので、PostgreSQL 12 を使用しているものと想定します。
ユーザー (例: postgres) に、TCP ローカルホストからのみログインでき、インターネットからはログインできないように権限を設定できますか?
はい、使いますpg_hba.conf
最初にこれをロードすることをお勧めしますhba_file
ランタイム構成。
ただし、ローカル アクセスとイントラネット アクセスの場合は、覚えられる (そして入力できる) ユーザー名とパスワードを使用できるようにすることをお勧めします。
パスワードで保護されたローカルのみのユーザーを追加する場合は、
local <database_name> <local-only_user_name> scram-sha-256
あなたの でpg_hba.conf
。
おそらく、まず次のようにしてユーザーを作成する必要がありますCREATE ROLE
:
CREATE ROLE username LOGIN ENCRYPTED PASSWORD 'insert-your-password-here';
イントラネットおよびインターネット ベースの認証を構成するために、エントリを確認して記録しhost
、追加することもできます。hostssl
pg_hba.conf
詳細については、リンクされたドキュメントを確認してください。