当以用户名为scott的用户登录oracle数据库时,可以选择Normal和SYSDBA两种身份登录进去。当以Normal身份登录时只能查询SCOTT用户下的表;当以SYSDBA身份登录时既能查自己用户下的表又能查其他普通用户下的表。
现在我需要通过JDBC连接oracle数据库时,用户名是SCOTT,需要以DBA的身份登进数据库(也就是说我不但想查SCOTT用户下的表,还想查询别的用户下的表),请问该怎么做呢?
注:以下这种默认是普通用户的身份,我需要的是以DBA的身份登录
String url = "jdbc:oracle:thin:@localhost:1521:"+DBName;
conn = DriverManager.getConnection(url, "scott", "tiger");
1、首先try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
利用Oracle获取一个新的实例。
2、 Properties conProps = new Properties();
conProps.put("user", "sys");
conProps.put("password", "root");
conProps.put("defaultRowPrefetch", "15");
conProps.put("internal_logon", "sysdba");
这一步利用一个Properties对象来存储用户名,密码,并设置其访问权限。
3、conn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.200.93:1521:orcl", conProps);
利用2中的设置进行对数据库的连接。
通过以上三步,我们可以用JDBC实现一个 conn as sysdba的目的。
回答的非常清楚,帮助很大,十分感谢。刚开始我用你的方法在我的程序中试时老是报错,后来才知道,要想让SCOTT用户名以sysdba的身份登录,需要给SCOTT授权为sysdba,但是我之前一直是授权为dba了,所以不能成功。