Một quản trị viên DB thân thiện đã đến giải cứu và nhận thấy rằng đây thực sự là một lỗi của Oracle:
Problem Description:
--------------------
When trying to connect by using the JDBC THIN 11g driver to a database 11g
using Enterprise User Security (EUS) connections throw invalid username/
When usign the JDBC OCI driver the connection can be made.
Và bây giờ - hãy giữ lấy mũ của bạn:
Available Workarounds:
----------------------
Use OCI.
Lưu ý rằng tôi đã sử dụng 11.2.0.4, trong khi lỗi nói
Tested Versions:
----------------
JDBC THIN Driver 11.1.0.6.0 and 11.1.0.7.0
Vì vậy, rõ ràng là nó đã xuất hiện được một thời gian. Tôi không chắc mình hiểu - tại sao họ đưa ra các phiên bản mới của trình điều khiển này nếu nó không kết nối bạn với cơ sở dữ liệu đúng cách? Có vẻ như đây sẽ là vấn đề đầu tiên mà mọi người gặp phải khi sử dụng trình điều khiển mỏng?
Nhưng sau đó, anh hùng quản trị viên DB địa phương của chúng tôi đã đào được điều này:
Set the property oracle.jdbc.thinLogonCapability=o3 for the JDBC connection by passing the option oracle.jdbc.thinLogonCapability=o3 on the command line.
For example:
java -Doracle.jdbc.thinLogonCapability=o3 <Java Class>
There is no loss of security when following this workaround.
Trong Eclipse, tôi đã thêm dòng này vào các đối số VM (Run -> Run Configurations -> Arguments -> VM đối số -> add -Doracle.jdbc.thinLogonCapability =o3) và, lo và này, cuối cùng tôi có thể truy cập vào cơ sở dữ liệu.