Внешняя таблица через DBLINK

Я пытаюсь выбрать набор данных во внешней таблице через DBLINK. Однако я получаю эту ошибку:

ORA-06564: объект MY_EXTERNAL_DIR не существует ORA-02063: предыдущая строка из foo

foo — моя удаленная ссылка на базу данных. И нет, на этом диске нет каталога. Этот каталог находится на удаленной базе данных.

Я создал VIEW в локальной БД и попытался получить к нему удаленный доступ, но это не помогло.

Я зря трачу время?

Спасибо.


person Oguen    schedule 25.11.2016    source источник
comment
Напишите, пожалуйста, как вы его выбираете. Опубликуйте свой оператор выбора.   -  person XING    schedule 25.11.2016
comment
Конечно, выберите * из my_table@foo   -  person Oguen    schedule 25.11.2016


Ответы (2)


Я проверил это, и можно получить доступ к внешней таблице через ссылку на базу данных. Я думаю, что вам нужно будет предоставить разрешения на чтение и запись в каталоге (объект базы данных оракула) пользователю, к которому вы подключаете ссылку db, если это не пользователь, которому принадлежит внешняя таблица.

Предположим, что у вас есть пользователь bob, которому принадлежит рабочая внешняя таблица с именем ext_tab в каталоге xtern_data_dir удаленной базы данных dbr, и вы хотите получить доступ к этой таблице через удаленного пользователя jim.

CREATE USER jim IDENTIFIED BY "passwd";

GRANT CREATE SESSION to jim;

GRANT SELECT ON bob.ext_tab TO jim;

GRANT READ, WRITE ON DIRECTORY xtern_data_dir TO jim;

В локальной базе данных создайте ссылку db на jim на dbr

CREATE DATABASE LINK dbr CONNECT TO jim IDENTIFIED BY "passwd" USING 'DBR';

Теперь выбор будет работать

SELECT * FROM bob.ext_tab@DBR;
person Community    schedule 25.11.2016

@Lunc, спасибо!

Я был почти уверен, что до внешнего стола невозможно добраться удаленно. До твоего поста! :)

Мне удалось выбрать свои данные, это помогло.

GRANT ALL ON DIRECTORY MY_DIRECOTY TO PUBLIC;
person Oguen    schedule 25.11.2016
comment
Это сделает работу, но предоставление всем всех прав на каталог на сервере базы данных, как правило, представляет собой серьезную угрозу безопасности, и ее лучше избегать. - person ; 25.11.2016