これは非常に奇妙です。私は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
前もって感謝します!