2012-10-27 58 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作为连接的用户名(注意空格!)。我不知道这是否是支持的解决方案,但似乎没有问题。