यह विशेष पात्रों के साथ या उनके बिना काम करना चाहिए; यह 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 बग मार रहे होंगे, जो एक डेटाबेस लिंक के माध्यम से प्रॉक्सी क्षमता को तोड़ता हुआ प्रतीत होता है। अधिक जानकारी के लिए एमओएस नोट 19191702.8 देखें। हालांकि यह एक बग के बजाय जानबूझकर नया व्यवहार लगता है, और पुराने व्यवहार - जहां यह काम करता है - को गलत बताया जा रहा है।
एक विशिष्ट घटना को सेट करने की अनुमति देने के लिए एक पैच उपलब्ध हो सकता है जो व्यवहार को बदल देता है (और यह 12.2 में माना जाता है), लेकिन "मौजूदा अनुप्रयोगों को अनुमति देने के लिए एक अंतरिम समाधान के रूप में, [पुराने] गलत व्यवहार पर निर्भर, जारी रखने के लिए काम"। यदि आपके प्लेटफ़ॉर्म और संस्करण के लिए कोई पैच नहीं है या ईवेंट मदद नहीं करता है, तो आपको एक सेवा अनुरोध करने की आवश्यकता होगी; बेशक यह किसी एक को बढ़ाने लायक हो सकता है।