首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

connection as SYS should be as SYSDBA or SYSOPER解决方案

2012-12-26 
connection as SYS should be as SYSDBA or SYSOPER用户名 :sys 密码: 我自己设定的database:ORCLconnect

connection as SYS should be as SYSDBA or SYSOPER
用户名 :sys 
密码: 我自己设定的
database:ORCL
connect as :SYSDBA
出现无法解析指定的连接标识符,怎么解决?
我是初次使用oracle。
[解决办法]
需要特殊处理:

Properties conProps = new Properties();
conProps.put("user", userID);
conProps.put("password", userPassword);
conProps.put("internal_logon", "sysdba"); // 主要就是这行代码

Class.forName(driverClass).newInstance();
cn = DriverManager.getConnection(connectionURL, conProps);
[解决办法]
你没有用过命令行下的sqlplus来连接Oracle数据库么?

sqlplus sys/internal as sysdba

因为sys用户全力非常高,所以在连接数据库时不能以普通用户身份连接,必须指定身份为 sysdba 

而在JDBC下,DriverManager.getConnection()一般只能传递 用户名和密码 这两个参数,无法写入“as sysdba” 这样的语法。

所以要用Properties来进行特殊处理。
[解决办法]
忘了说明下,你标题中“connection as SYS should be as SYSDBA or SYSOPER”

得原因就是:“因为sys用户权利非常高,所以在连接数据库时不能以普通用户身份连接,必须指定身份为 sysdba”
[解决办法]
又看了遍你的问题,发现似乎你的标题跟问题内容不符,麻烦你详细说下你的操作场景和完整错误信息。

热点排行