异常:ORA-28009: connection to sys should be as sysdba or sysoper

现象:

写JDBC链接Oracle案例运行时,抛出异常:

java.sql.SQLException: ORA-28009: connection to sys should be as sysdba or sysoper

 

原因:

正常输入用户名的口令,会报错,因为SYS是在数据库之外的超级管理员。

 

方案:

因为SYS是在数据库之外的超级管理员,所以我们在登录的时候,要输入口令:口令+as sysdba(比如:tp as sysdba)

 

另外:

1、在使用PL/SQL登录时,用户名为sys,口令、数据库正确的情况下,以Normal连接时也一样会抛出这个异常。这里,也需要我们将其改为以SYSDBA或SYSOPER进行连接。

 

2、在CMD下使用sqlplu登陆时,以下方式都可以进行登陆:

        sqlplus sys/tp@TPDB as sysdba
        sqlplus / as sysdba
        sqlplus sys/tp as sysdba

这是Oracle登陆问题,因为Oracle在本地的缘故。而系统默认是操作系统认证模式。

Oracle的认证方式分为操作系统认证和口令文件认证2种方式,操作系统认证有时候也叫本地认证:

--操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统那么oracle数据库你也能登陆。
--口令文件认证:oracle认证认为操作系统用户是不可信任的,如果要访问数据库,必须进行再次认证。

【互联网纳】

 

案例:

String userName = "sys as sysdba";
String userPass = "tp";
String driverName = "oracle.jdbc.driver.OracleDriver";
String dataBaseUrl = "jdbc:oracle:thin:@192.168.20.13:1521:ORCL";

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值