首页 新闻 会员 周边

通过JDBC连接oracle数据库时怎么以DBA 身份登录

0
悬赏园豆:50 [已解决问题] 解决于 2014-11-27 21:07

  当以用户名为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");

晴心的主页 晴心 | 初学一级 | 园豆:137
提问于:2014-11-26 17:28
< >
分享
最佳答案
0

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的目的。

收获园豆:50
Mr.Brian | 小虾三级 |园豆:1518 | 2014-11-26 19:59

回答的非常清楚,帮助很大,十分感谢。刚开始我用你的方法在我的程序中试时老是报错,后来才知道,要想让SCOTT用户名以sysdba的身份登录,需要给SCOTT授权为sysdba,但是我之前一直是授权为dba了,所以不能成功。

晴心 | 园豆:137 (初学一级) | 2014-11-27 21:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册