Так что это очень странно. Я пытаюсь сделать простой выбор, используя 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, идентификатор INT)
И я сразу же получаю сообщение об ошибке:
PG:: SqlclientUnableToEstablishSqlconnection: ОШИБКА: не удалось
установить соединение DETAIL: FATAL: роль "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
Заранее спасибо!
select '>'||rolname||'<' from pg_roles;
? - person bma   schedule 09.08.2013