Điều này sẽ hoạt động, có hoặc không có các ký tự đặc biệt; đây là trong 11.2.0.3, đầu tiên không có:
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
Và với:
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
Không hoạt động trên 11.2.0.4; có hoặc không có ký tự đặc biệt thì lỗi:
select * from [email protected]
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from DBL
Nếu bạn đang sử dụng phiên bản 11.2.0.4 trở lên thì có thể bạn đang gặp phải lỗi 19191702, có vẻ như đã phá vỡ khả năng proxy thông qua liên kết cơ sở dữ liệu. Xem ghi chú MOS 19191702.8 để biết thêm thông tin. Mặc dù vậy, đây dường như là hành vi mới có chủ đích chứ không phải là lỗi và hành vi cũ - nơi điều này đã hoạt động - được mô tả là không chính xác.
Có thể có sẵn một bản vá để cho phép một sự kiện cụ thể được thiết lập để hoàn nguyên hành vi (và nó được cho là có sẵn trong 12.2), nhưng là "giải pháp tạm thời để cho phép các ứng dụng hiện có, dựa trên hành vi không chính xác [cũ], tiếp tục công việc". Nếu không có bản vá cho nền tảng và phiên bản của bạn hoặc sự kiện không giúp được gì thì bạn cần phải đưa ra yêu cầu dịch vụ; tất nhiên nó có thể đáng giá.