Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Liên kết cơ sở dữ liệu Oracle - kết nối với proxy bằng các ký tự đặc biệt trong tên người dùng

Đ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á.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thêm 10 giây trong SQL current_timestamp (Oracle)

  2. Cập nhật truy vấn dẫn đến sai

  3. java.lang.UnsatisfiedLinkError:không có ocijdbc11 trong java. library.path

  4. Cách thay đổi nls_date_format mặc định cho ứng dụng khách oracle jdbc

  5. Làm thế nào để trả về số giây trước nửa đêm trong cơ sở dữ liệu Oracle