2016-02-17 2 views
1

У нас есть учетные данные базы данных Postgres (с SSL) от нашего подрядчика, которые позволяют нам подключаться к БД с помощью pdAdmin 3. БД доступно только для чтения (не может выполнять pg_dump) нам и в основном подрядчик не предоставит нам больше привилегий.Postgres: Использование dblink для удаленного подключения

Нам нужно получить данные из этого удаленного БД в наш локальный БД. Поэтому я хотел использовать dblink для выполнения этой задачи.

Я бегу это на PSQL:

insert into shifts select * from dblink('hostaddr=remote_addr port=9000 dbname=production user=user password=passwd', 'select user_id, location_id from shifts') as t1(user_id integer, location_id integer); 

Тогда я получил:

ERROR: password is required DETAIL: Non-superuser cannot connect if the server does not request a password. HINT: Target server's authentication method must be changed.

Поскольку я новичок в Postgres и DBLink, я понятия не имею, почему она жаловалась нет пароля. И интересно, для соединения dblink удаленная база данных должна предоставлять дополнительные привилегии?

Если pdAdmin 3 может подключиться к удаленной БД с учетными данными, что мне делать, чтобы заставить dblink работать?

Спасибо!

ответ

0

Да только суперпользователь может предоставить вам на объект для подключения через DBLink

просто запустить эту команду ниже, можете ли вы подключиться к базе данных

SELECT dblink_connect('myconn', 'dbname=postgres'); 
SELECT dblink_connect('myconn', 'hostaddr=remote_addr port=9000 dbname=production user=user password=passwd'); 

просто дать имя базы данных и хотите подключить после DBNAME

Вы можете подключить

dblink_connect_u 

dblink_connect_u() is identical to dblink_connect(), except that it will allow non-superusers to connect using any authentication method.

Ссылка на Postgres сайте dblink

Для суперпользователя попросить их, чтобы создать добавочные

CREATE EXTENSION dblink; 

для вашей базы данных или схемы.

+0

Можете ли вы пролить свет на то, что должен сделать удаленный суперпользователь, чтобы мы могли использовать dblink? Благодаря! – nigong

+0

@nigong я отредактировал вопрос. – SarthAk

+0

@nigong см. Ответ за то, что вам нужно создать расширение dblink – SarthAk

Смежные вопросы