web-dev-qa-db-ja.com

LANからPostgreSQLサーバーにアクセス

IPアドレスだけを使用してサーバーにアクセスできるようにするために、これまでのところ成功していません。

たとえば、"localhost"を使用してアクセスできますが、ルーターが192.168.1.XのようなIPアドレスを使用してアクセスしたい

これはmi pg_hba.confです。

# 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            trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                trust
#Host    replication     postgres        127.0.0.1/32            trust
#Host    replication     postgres        ::1/128                 trust
Host all all 0.0.0.0/0 trust

何か助けは?

17
Simón Oroño

まず、postgresql.confファイルを編集し、 listen_addresses を設定します。 'localhost'のデフォルト値は、ループバックアダプターのみをリッスンします。すべてのアドレスでリッスンすることを意味する「*」に変更するか、具体的には、接続を受け入れるインターフェイスのIPアドレスをリストすることができます。これは、インターフェースが割り当てたIPアドレスであり、ifconfigまたはip addrコマンドを使用して確認できます。

Listen_addressesへの変更を有効にするには、postgresqlを再起動する必要があります。

次に、 pg_hba.conf で、次のようなエントリが必要になります。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
Host    {dbname}        {user}          192.168.1.0/24          md5

{dbname}は、アクセスを許可するデータベース名です。すべてのデータベースに「すべて」を指定できます。

{user}は、接続を許可されているユーザーです。これはpostgresqlユーザーであり、必ずしもUNIXユーザーではないことに注意してください。

ADDRESS部分は、許可するネットワークアドレスとマスクです。私が指定したマスクは、要求どおりに192.168.1.xで機能します。

METHOD部分は、使用する認証方法です。そこではいくつかのオプションがあります。 md5は、md5ハッシュパスワードを使用することを意味します。サンプルで持っていた「信頼」は、認証がまったくないことを意味します-これは絶対にお勧めできません。

Pg_hba.confへの変更は、サーバーをリロードした後に有効になります。 pg_ctl reloadを使用して(またはOSディストリビューションによっては、initスクリプトを使用して)これを行うことができます。

39
harmic