Това трябва да работи, със или без специалните символи; това е в 11.2.0.3, първо без:
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
И с:
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
Нито работи на 11.2.0.4; със или без специалния знак дава грешки:
select * from [email protected]
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from DBL
Ако сте на 11.2.0.4 или по-висока, тогава може да удряте грешка 19191702, която изглежда е нарушила възможността на прокси чрез връзка към база данни. Вижте MOS бележка 19191702.8 за повече информация. Изглежда обаче, че това е умишлено ново поведение, а не грешка, а старото поведение - където това работеше - се описва като неправилно.
Може да има налична корекция, която да позволи да се настрои конкретно събитие, което връща поведението (и се предполага, че е налично в 12.2), но като „временно решение, позволяващо на съществуващи приложения, разчитащи на [старото] неправилно поведение, да продължат да работа". Ако няма корекция за вашата платформа и версия или събитието не помогне, тогава ще трябва да повдигнете заявка за услуга; може да си струва да отгледате такъв, разбира се.