私の質問

私の質問

私の質問

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、追加することもできます。hostsslpg_hba.conf

詳細については、リンクされたドキュメントを確認してください。

関連情報