如何使用Hibernate以SYSDBA身份连接到Oracle数据库?
答案 0 :(得分:1)
你为什么要这样做?
Hibernate是一种用于构建数据库应用程序的工具,无需以任何有意义的方式使用数据库。
SYSDBA是一种用于以SYS(数据字典的所有者和数据库中最强大的用户)连接到Oracle数据库的协议。这是一个行政角色。很少有人需要以SYS身份连接,而且只需要这样做的人就是DBA。根据我的经验,DBA厌恶并厌恶Hibernate应用程序。
简而言之,Hibernate提供对数据库的通用抽象访问,而SYSDBA需要特定的实际访问。无论你想要实现什么,都必须有比通过Hibernate使用SYSDBA更好的方法。
答案 1 :(得分: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
作为连接的用户名(注意空格!)。我不知道这是否是一个受支持的解决方案,但似乎没有问题。