首页 > 代码库 > 错误:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 的解决办法--转载但验证过后可以用

错误:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 的解决办法--转载但验证过后可以用

今天,用iSQL*Plus 以sys用户连接数据库的时候报ORA-28009:connection as sys should be as sysdba or sysoper的错误,不知道是怎么回事,记得以前的时候连接的时候什么错误没报就过去了。有可能是用DBCA又建了一个新库,所以连接不上。从网上找了一下,原文如下:http://linli.blogbus.com/logs/13337529.html

 用 SQL*Plus 连接数据库的时候,出现一个对话框,要求填入用户名、密码、主机字符串信息。前两者不用说,自己会填对的,但是这个主机字符串好象没见过呀,其实这里的这个字符串就是我门在安装oracle的时候自动生成,它是配置的数据库连接服务名,与数据库系统标识符一致,但是两者是不同的概念不能混淆。一般与你在安装时设置的全局数据库名一致。我设置的全局数据库名为orcl,所以连接的时候,应该填写主机字符串为orcl as sysdba. 要是不加后面的 as sysdba,则会出现ERROR:ORA-28009: connection to sys should be as sysdba or sysoper  例如,以sys为用户名,password为密码,sysdba为连接身份登录或连接到sql*plus,则输入用户名称:sys,口令:password,主机字符串:orcl as sysdba

这里没看到主机字符串  直接在口令那里输入:sys as sysdba     ------到这里我连接上了

上面已经说的很清楚了,不过我还没想明白为什么我以sysoper用还有sys用户在sqlplus里也连不上呢?也是报错,而且提示信息还不一样,sysoper报的错误没有记下来。明天回学校试试。

(自己添加java连接数据库时的解决办法)

java代码:

String userName = "sys as sysdba";   //此处的sys为你安装oracle时设置的全局数据库名称

String userPass = "tp";   //此处为自己的密码

String driverName = "oracle.jdbc.driver.OracleDriver";  //Oracle的驱动

String dataBaseUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";   //数据库连接地址,此处为本地连接

 

错误:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 的解决办法--转载但验证过后可以用