1

これは非常に奇妙です。私はdblinkをそのまま使って簡単な選択をしようとしています:

SELECT * FROM dblink('dbname=my_db_name, user=my_user, password=password, hostaddr=127.0.0.1', 'SELECT action, object, created_at, id FROM my_table') AS de(ACTION VARCHAR, OBJECT VARCHAR, created_at TIMESTAMP, IDINT)

そして、すぐに次のエラーメッセージが表示されます。

PG::SqlclientUnableToEstablishSqlconnection: エラー: できませんでした

接続を確立します 詳細: 致命的: ロール "my_user" は存在しません

しかし、ローカルで psql に接続し、\du を使用してユーザーのリストを出力すると、次のように表示されます。

                               List of roles
   Role name   |                   Attributes                   | Member of 
---------------+------------------------------------------------+-----------
 MyName        | Superuser, Create role, Create DB, Replication | {}
 my_user       | Create DB                                      | {}

これを修正する方法については本当に途方に暮れています。グーグルもあまり役に立ちませんでした。このエラー メッセージが表示される理由について何か考えはありますか?

スーパーユーザー アカウントを使用して接続すると、パスワードを指定する必要がなく、dblink が正常に動作するので、かなり混乱します。これはpg_hba.confによるものです:

local   all             all                                     trust
local   all             all                                     md5

host    all             all             192.168.33.1/24         trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             127.0.0.1/32            md5

# IPv6 local connections:
host    all             all             ::1/128                 trust
host    all             all             ::1/128                 md5

前もって感謝します!

4

2 に答える 2