• ベストアンサー

インターネットアクセス

データベースにアクセスする為に、 pg_hba.confを編集するのですが、 思ったように行かなくて困っています。 host all all 127.0.0.1 255.255.255.255 trust とデフォルトではなっていて、ローカルだけからアクセスできますよね。 ネット経由でアクセスする為に host all all 192.168.0.3 255.255.255.0 trust (ネットマスクはこれでいいのですよね?すいません本のとおりです・・・よくわかっていないです) これでネット経由でアクセスできたのですが、 ローカルからのアクセスが出来なくなってしまいました・・・ ローカル、ネット、両方からアクセスする為にはどうしたらよいのですか? また本に host all all 0.0.0.0 0.0.0.0 trust とやるとどこからでもつながってしまう、と書いてあったのですが、逆に全くつながらなくなりました・・・ それとふとした疑問なのですが、ここの設定でUSER(右から2番目)がallなのに、違うユーザー名でアクセスしようとするとエラーになります。どういうことなんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

もしかして、 host all all 127.0.0.1 255.255.255.255 trust を host all all 192.168.0.3 255.255.255.0 trust に書き換えられたのでしょうか? もしそうだとすると、ローカルからのアクセスに関する設定が無くなったので、ローカルからはアクセスできません。 認証の条件は何行でも記述できますので、書き換えるのではなく、付け加えてみて下さい。 例)---------------------------------------------- # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust host all all 192.168.0.0 255.255.255.0 trust

参考URL:
http://www.postgresql.jp/document/pg746doc/html/client-authentication.html#AUTH-PG-HBA-CONF
azicyan
質問者

お礼

あっ 付け足すのですね! わかりました。 やってみます! とても助かりました!

その他の回答 (1)

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

う~ん。私が知らないだけかも知れないんだが・・・・ユーザ名を指定するエントリなんてあっただろうか? TYPE DATABASE IP_ADDRESS MASK AUTH_TYPE AUTH_ARGUMENT この形式じゃないのかなぁ・・・・。Ver.7.2.3で確認。Ver.8.0から変わったとかだろうか・・・・? つまり、 host all 0.0.0.0 0.0.0.0 trust で、君が言うところの「ユーザ」を指定するところは私は知らない。 後、ローカルから繋がらない、というのは、ローカルからpsqlを使って、例えば $ psql -U suzaku genbu とした場合(ユーザsuzakuでデータベースgenbuに接続)という事だろうか。psqlではホストを指定しないと、ローカルの「UNIXドメインソケット」で接続しようとする(多分)。なので、 local all trust という行が必要なんじゃないかなぁ。実は私もこの辺の動きを正確に把握しているわけではないので間違っているかも。

azicyan
質問者

補足

バージョンは4.7.4です。 確かに本を見るとUSER無いです。 でも実際pg_hba.confファイルを見ると # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host all all 127.0.0.1 255.255.255.255 trust のようになっています。 というわけでlocal all trust という行もあります。

関連するQ&A

  • PostgreSQLのセキュリティのHBA設定で、IPアドレスとはどこで見付けることができますか?

    始めまして。linuxベースでPostgreSQLを使っています。 セキュリティを設定しようと思い、 /usr/local/pgsql/data/pg_hba.conf に host all 192.168.10.1 255.255.255.255 trust と勉強本にありますが、3項目めの IPアドレス と4項目めの アドレスマスクはどこで調べることができるのでしょうか?? そのIPアドレスはスーパーユーザーやローカルユーザーによって違いますか? もしよろしければ、教えていただきたいです!

  • phpPgAdminでログインできない

    おせわになります よろしくお願いします。 現在、ファーストサーバー様のデルタ1を使用して サーバーの構築を行っています。 WEBページまで見れるようになったのですがphpPgAdminでログインできなくて困っています よろしくお願いします。 【pg_hba.conf】 local all all ident sameuser # IPv4 local connections: host all all 127.0.0.1/32 ident sameuser # IPv6 local connections: host all all ::1/128 ident sameuser local all all trust host all all 192.168.0.0/24 trust host all all 0.0.0.0/0 md5 【config.inc.php】 $conf['servers'][0]['host'] = '127.0.0.1'; $conf['servers'][0]['defaultdb'] = 'test'; $conf['extra_login_security'] = false; テストというデータベースは作成済みです この状態で[postgres]でログインしようとすると ログインに失敗しましたとなります ユーザーIDとパスワードは何度も試したので間違いないと思うのですが SSHからのデータベース操作はできます。 以上よろしくお願いします

  • ODBCテストエラー(pg_hba.conf)

    おせわになります。 早速ですが質問です。 -------------------------------------------------- 仮想PC(VMWare)側 CentOS 5.6 + PostgreSQL 9 実PC Win XP -------------------------------------------------- と言う環境で、ODBC接続のテストを行おうとすると、 「FATAL:no pg_hba.conf entry for host "xxx.xxx.xxx.xxx", user "xxx", database "xxx", SSL off」 と表示されます。 調べたところ"pg_hba.conf"に修正が必要とのことですが、"pg_hba.conf"なるファイルが見付らず、代わりに?"pg_hba.conf.sample"と言うファイルが存在します。 場所は"opt/postgreSQL/9.0/share/postgresql"です。 とりあえず、同じフォルダにコピーを作成してリネームし、"host all all xxx.xxx.xxx.xxx/xxx trust"の記述も追加しましたが、結果は変わらずでした。 そこで、 -------------------------------------------------- 1."pg_hba.conf"が見付らない時点で、何かおかしい(セットアップエラー?)のか? 2.同じフォルダにコピーを作成してリネーム、"host all all xxx.xxx.xxx.xxx/xxx trust"の記述追加は正しいのか? 3.2が正しいのであれば、ODBC接続テストでこのエラーが出る原因には何が考えられるか? -------------------------------------------------- が解る方はおみえでないでしょうか? 因みに、仮想PCのファイアウォールは無効にしてあり、実PCからのPingが飛ぶのも確認しております。 以上、よろしくお願いいたします。

  • psqlの一部でエラー

    あるサーバーにDBのダンプをインポート仕様としています psql - U postgresで接続できていることは確認してあります psql -h localhost -U postgres -f xxxxxx.dump xxxxxx とうつとIdent authentication failed for user "postgres"とFATALが出て インポートかでません pg_hba# TYPE DATABASE USER CIDR-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 ident # IPv6 local connections: host all all ::1/128 ident.confには下記になってます どうしてでしょうか?

  • 最初のパスワードがわからなくなってしまいました・・・

    PostgreSQLの最初に設定したパスワードを忘れてしまったのですが設定したパスワードを調べる方法はないでしょうか? pgAdminIIIではパスワードを入れるとアクセスできるのですが、コマンドプロントからするとなぜかアクセスできません。。。。 同じようにパスワードがわからなくなった方の質問・回答から以下の処理をしてみたのですが・・・ *************** pg_hba.confのエントリを編集し直します。 # TYPE DATABASE USER IP-ADDRESS/CIDR-mask METHOD host all all 127.0.0.1/32 password この、passwordと書いているエントリの部分をtrustへ変更します そしてpostgreSQLを再起動し、postgresユーザーで全部いじれるようになります。 使えるようになったらtrustとした部分をpasswordにもどし、ネットワークへつないでください。 ***************** 上記の方法でやってみたのですがパスワードをtrustの状態にし、「psql postgres」 とうち、データベースへ接続しようとしたら psql: role "Owner" does not exist とエラーが出てしまうのです。何がいけないのでしょうか・・・ DBへの参考書やネットで調べたりしているのですが、ツールを使わずにDB操作を行おうとしたらコマンドプロンプトからDBへ接続し、sql文で操作するものだと思うのですが・・・・間違った解釈なのでしょうか・・・・

  • netstat実行時のlocalhost.localdom:postgresの意味

    postgresをlocalhost以外から接続したいと思い、pg_hba.confに host all all XXX.XXX.XXX.XXX/32 trust と設定したのですが接続できず困っています。 netstat -l -A inetを実行すると tcp 0 0 localhost.localdom:postgres *:* LISTEN と表示されますが、Local Addressに「localhost.localdom:postgres 」と表示されるのは、localhostのみpostgresの接続が許可されているという意味でしょうか?

  • バキュームをクーロンから実行

    REDHAT7.3でPostgreSQL7.2を使用しております。 定期的にバキューム処理等を行う為に スーパユーザpostgresのクーロンにコマンドを登録しましたが pg_hba.confにてlocal接続はmd5で認証を掛けている為、 実行できませんでした。(パスワードを入れられない) セキュリティー上、認証をtrustにせずmd5のままクーロンから バキュームやアナライズなどの処理を実行したいと考えております。 どの様にしたらクーロンから実行できるようになりますでしょうか? 宜しくお願い致します。

  • postgres に接続できない

    PHP4とpostgrs8.0を利用しています。OSはWINDOWS2000です。 $DB_SERVER="localhost"; $Port = "5432"; $DB_NAME="test"; $DB_UID="postgres"; $DB_PASS="abc"; define("DB_CONECT","host=$DB_SERVER port=$Port dbname=$DB_NAME user=$DB_UID password=\"$DB_PASS\""); という設定で pg_connect(DB_CONECT) の接続でエラーが発生します。 Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "postgres" in c:\*****.php on line 12 なぜでしょうか? pg_hba.confの設定で host all all 127.0.0.1/32 md5 を host all all 127.0.0.1/32 trust に変更すると接続できるのですが。 それは問題ないのでしょうか? またレンタルサーバーのpostgresを利用する場合、 その設定も個人で変更できるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • phpPgAdminが動きません。

    会社のテスト用WebサーバのDocumentRoot/ppaディレクトリ下にphpPgAdmin4.2を入れました。 ID・パスワードを入力してログイン後、既存のDB一覧が表示されるのですが、「データベース名」や「アカウント」をクリックしても必ずログイン画面へ戻ってしまいます。 正しいユーザID・パスワードを入力した場合のみログインできる点、データベース一覧が見えてる点などから、config.inc.phpのDB接続設定はうまくできていると考えているのですが… なにか心当たりがあれば教えて頂きたいと思います。 【各バージョン】 OS:CentOS release 4.4 (Final) ※VMware6上で稼働 カーネル:Linux version 2.6.9-42.EL PHP:4.3.9 PostgreSQL:7.4.19 Apache:2.0.52 【pg_hba.confの設定】 local all all md5 host all all 127.0.0.1 255.255.255.255 md5 host all all 0.0.0.0 0.0.0.0 md5 DBとWebサーバは上記同一サーバ上で稼働しております。 以上、よろしくお願い致します。

  • Common SQL Environment で接続できません。

    Common SQL Environment を使い、RedHat9にインストール時に自動的に入れたPostgreSQLに接続しようとすると、 connectDB() connect() feild:No error Is the postmaster running (with -i) at '192.168.10.5' and accepting connectons on TCP/IP port'5432'? と、エラーがでて、接続できません。 pg_hba.confには、 host all xxxxx 192.168.10.2 255.255.255.0 trust を追加。 postgresql.conf では、 tcpip_socket = true port = 5432 のコメントを外しています。 他に、何か必要なのでしょうか? あちこち情報を探しているのですが、なかなか見つからなくて。 よろしくお願いします。