Явно ссылаться на общедоступный DBLink, когда схеме принадлежит частный с тем же именем?

Я работаю над проектом миграции, требующим импорта нескольких Oracle схем базы данных в существующую базу данных. Это требование привело к интересному конфликту: теперь у меня есть два dblinks < / a> с таким же именем:

  • Один из них - частный dblink, который использует учетную запись A для доступа к Foobar базе данных.
  • Другой - общедоступный dblink для той же Foobar базы данных, которая использует учетную запись B для доступа.

Global Names имеет значение true, поэтому я не могу изменить имена этих dblinks.


Путем проб и ошибок я уже выяснил, что при входе в схему, которая владеет частным dblink, следующее:

SELECT * 
FROM table@foobar;

будет относиться к частному dblink, а не к общедоступному. Но для ситуаций, когда мне требуются права учетной записи B, я не могу понять, как явно ссылаться на публика dblink.

Кто-нибудь знает синтаксис, который я могу использовать для обращения к публике @foobar?


person DanK    schedule 15.12.2015    source источник
comment
вы можете создать уникальный синоним для одной из dblinks?   -  person kevinskio    schedule 15.12.2015


Ответы (1)


Из документации Oracle.

Oracle сначала ищет ссылку на частную базу данных в вашей собственной схеме с тем же именем, что и ссылка на базу данных в операторе. Затем, при необходимости, он ищет ссылку на общедоступную базу данных с тем же именем.

Я не думаю, что это можно как-то изменить. Не то, чтобы я знал об этом или нашел в документации. Вы можете создать общедоступный синоним, но это будет работать только в том случае, если вам потребуется доступ с B определенными объектами. Синоним не может быть создан для всей ссылки на базу данных.

Не было бы проще превратить global names в False на уровне сеанса и создать новую ссылку на B с другим недействительным именем ссылки. Если вы измените global names на уровне сеанса, только этому сеансу будет разрешено использовать новую ссылку.

person J91321    schedule 15.12.2015
comment
Спасибо за эту цитату ... добавление ссылки, откуда вы взяли ее: docs.oracle.com/cd/B12037_01/server.101/b10759/ - person DanK; 16.12.2015
comment
Судя по тому, что я вижу, я должен согласиться с вашей оценкой. Похоже, мне понадобится работа для доступа к обоим DBLink. Спасибо! - person DanK; 16.12.2015