
WEBサーバー「A」とDBサーバー「B」が存在しています。
この時、「A」から「B」への接続をCGIからpsqlをコールすることで行っています。
認証についてはpgpassを利用しているつもりなのですが、
どうもこれが有効になっていないようで、接続ができません。
どうやったら接続できるようになるでしょうか??
皆様のお力をお貸し願えれば幸いです。
pgpassはユーザー「X」が所有者となっておりパーミッションは「600」となっています。また「X」の$HOMEに置かれています。
また、同様のテスト環境が存在するのですが、そちらでの接続はうまくいっています。
もしかしてテスト環境でもpgpassが効いてるわけではなく、別の方法で接続が確立されているということもあるでしょうか?
環境は以下の通りです。
本番サーバー
Linux [サーバー名] 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 i386 GNU/Linux
本番DB
Linux [サーバー名].in.[ドメイン] 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 i386 GNU/Linux
テストサーバー
Linux [サーバー名] 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 i386 GNU/Linux
テストDB
Linux [サーバー名] 2.4.20-8smp #1 SMP Thu Mar 13 17:45:54 EST 2003 i686 i686 i386 GNU/Linux
Perlは v5.8.0 (perl -v にて確認)
PostgreSQLは 7.4.7 (psql --version にて確認)
No.1ベストアンサー
- 回答日時:
推測ですみませんが。
。いろいろやってみましょう。試しに
1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか??
2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか??
この回答への補足
> 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか??
CGIをキックするユーザーとなるとアパッチで設定されているnobodyというユーザーになるようなのですが、
このユーザーのホームは「/」となっているようです。
一応そこにおいて試してみました。(所有者root パーミッション600)
・・・結果は失敗でした。
> 2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか??
やはりダメでした。
ただ、テストサーバーではこの場所に置かれています。
No.2
- 回答日時:
そうですかぁ。
。。> 1)CGIをキックしたユーザのホームディレクトリに.pgpassをおいてみてはどうですか??
CGIをキックするユーザーとなるとアパッチで設定されているnobodyというユーザーになるようなのですが、
このユーザーのホームは「/」となっているようです。
一応そこにおいて試してみました。(所有者root パーミッション600)
・・・結果は失敗でした。
> 2)psqlで接続する-Uで指定したユーザのホームディレクトリに.pgpassをおいてみてはどうですか??
やはりダメでした。
ただ、テストサーバーではこの場所に置かれています。
本当に憶測ですみませんが、-Uで指定したユーザのホームディレクトリに.pgpassを配置したあと、PostgreSQLを再起動してもだめですかねぇ・・・。
とりあえず以下のような方法で解決しましたので、ひとまず質問は締め切らせていただきます。
いろいろとアドバイスいただきありがとうざいました。
my $command = 'echo [パスワード] | psql -h [ホストIP] -U [ユーザー] -c "select * from test" |'
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで縦のカラムデータを...
-
bashスクリプトでpostgreSQLの...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSqlでFunctionの作成に...
-
SQLにて指定日付より前、かつ最...
-
自治会総会の成立要件について
-
postgresqlでのトランザクショ...
-
shellからpostgresqlへの変数の...
-
postgresql についてです
-
PostgresQLでサーバーを新規追...
-
sqlの中で、 例えば条件句で AN...
-
列が存在しないと言われる
-
visual studioとPostgreSQL(Ve...
-
SQL SELECT文 別テーブルのレコ...
-
Postgresql 新規作成したサーバ...
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
tesuto 01
-
python3.12のインストール方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
odbc接続処理が遅い
-
pgpassが有効にならない?
-
サーバに接続できません・・・
-
Common SQL Environment で接続...
-
postgresに接続できない
-
psql 使用時に自動 commit を無...
-
ODBCタイムアウトエラー
-
pg_dumpallのバックアップとリ...
-
PostgresSQLの同時接続数
-
postgreSQLのアクセス制御について
-
Linux+PostgreSQLでの設定
-
複数ユーザへの領域開放
-
postgresqlでのトランザクショ...
-
exp、impについて
-
windows版postgresql 異なるバ...
-
ORA-12571 パケット・ライター障害
-
Oracle9iを再インストールす...
-
postgresqlの接続ポート5432か...
-
PostgreSQLの標準文字コードをS...
-
Windows10がインストールできま...
おすすめ情報