To by mělo fungovat se speciálními znaky nebo bez nich; toto je v 11.2.0.3, první bez:
CREATE USER "AUSER" IDENTIFIED BY "a";
CREATE USER bar IDENTIFIED BY "random-trash";
ALTER USER bar GRANT CONNECT THROUGH "AUSER";
GRANT CREATE SESSION TO "AUSER";
GRANT CREATE SESSION TO "BAR";
CREATE PUBLIC DATABASE LINK dbl CONNECT TO "AUSER[BAR]" IDENTIFIED BY "a" using 'MYDB';
SELECT * FROM [email protected];
D
-
X
A s:
CREATE USER "A-USER" IDENTIFIED BY "a";
CREATE USER foo IDENTIFIED BY "random-trash";
ALTER USER foo GRANT CONNECT THROUGH "A-USER";
GRANT CREATE SESSION TO "A-USER";
GRANT CREATE SESSION TO "FOO";
DROP PUBLIC DATABASE LINK dbl;
CREATE PUBLIC DATABASE LINK dbl CONNECT TO "A-USER[FOO]" IDENTIFIED BY "a" using 'MYDB';
SELECT * FROM [email protected];
D
-
X
Ani jedno nefunguje na 11.2.0.4; se speciálním znakem nebo bez něj, chyby:
select * from [email protected]
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from DBL
Pokud jste na verzi 11.2.0.4 nebo vyšší, možná narazíte na chybu 19191702, která zřejmě narušila funkci proxy prostřednictvím odkazu na databázi. Další informace naleznete v poznámce MOS 19191702.8. Zdá se však, že jde spíše o záměrné nové chování než o chybu, a staré chování – kde to fungovalo – je popisováno jako nesprávné.
K dispozici může být oprava, která umožní nastavit konkrétní událost, která vrátí chování zpět (a údajně je k dispozici ve verzi 12.2), ale jako „dočasné řešení, které umožní stávajícím aplikacím, které se spoléhají na [staré] nesprávné chování, pokračovat v práce". Pokud pro vaši platformu a verzi neexistuje oprava nebo událost nepomůže, budete muset vznést požadavek na službu; každopádně může stát za to si jednu vyzvednout.