2012-10-27 91 views

回答

1

你爲什麼要這麼做?

Hibernate是一種用於構建數據庫應用程序的工具,無需任何有意義的方式與數據庫進行交互。

SYSDBA是一種用於連接到Oracle數據庫的協議,如SYS,數據字典的所有者和數據庫中最強大的用戶。這是一個管理角色。很少有人需要像SYS那樣連接,唯一需要這樣做的人是DBA。根據我的經驗,DBA厭惡和厭惡Hibernate應用程序。

簡而言之,Hibernate提供對數據庫的通用抽象訪問,而SYSDBA需要特定的和動手的訪問。無論你想實現什麼,都必須有比通過Hibernate使用SYSDBA更好的方法。

+0

感謝您的回覆。正在開發的網站旨在自動化DBA的工作。所以,作爲sysdba連接是系統的基本要求。你能建議其他方式連接爲sysdba嗎? –

0

了在Oracle的JDBC開發者指南中介紹的方法是通過獲得連接時,特定屬性:

Properties props = new Properties() 
props.put("username", "sys"); 
props.put("password", "some_very_secure_and_secret_password"); 
props.put("internal_logon", "sysdba"); 
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@....", props); 

我不知道,如果Hibernate是足夠的靈活性來定製連接的方式。

另一種方法是簡單地提供sys as sysdba作爲連接的用戶名(注意空格!)。我不知道這是否是支持的解決方案,但似乎沒有問題。