JDBC java与oracle数据库连接问题

setfai 2007-05-27 11:44:52
import java.sql.*;

public class TestJDBC {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:sys","sys","root");
} catch(SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


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

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:304)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:271)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:644)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:298)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:343)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:147)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:31)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at TestJDBC.main(TestJDBC.java:12)
...全文
854 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
白玉参 2008-05-11
  • 打赏
  • 举报
回复
把sys换成system试试
ZHENJIANWEI 2007-05-30
  • 打赏
  • 举报
回复
用sys登录不好用,最好作其它的用户身份,这也是比较安全的常用的,这个问题我在Hibernate中遇到过后来换了一个用户就可以了。
magus163 2007-05-30
  • 打赏
  • 举报
回复
说实话,我也没试过,所以喊你试试看啊!
michael_ls 2007-05-28
  • 打赏
  • 举报
回复
告诉你不是数据库的DBA或者操作员,请检查你的用户名和密码!
xiaobei2000 2007-05-28
  • 打赏
  • 举报
回复
新建一个role.

CREATE ROLE TEST IDENTIFIED BY TEST ;

GRANT ALL PRIVILEGES ON TEST

DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:"TEST ","TEST ");
肯定就可以,normal方式连接;

richard_2010 2007-05-28
  • 打赏
  • 举报
回复
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:sys","sys/as dba","");
不知道这样可以不哦
richard_2010 2007-05-28
  • 打赏
  • 举报
回复
楼上的你试过吗?我知道在登陆sql*plus这样可以的,在语句中还真没试过,呵呵,学习了
magus163 2007-05-28
  • 打赏
  • 举报
回复
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:sys","sys/root as dba","");

试试看
richard_2010 2007-05-28
  • 打赏
  • 举报
回复
以sys用户这个方法是不能连接到的,因为sys连接的时候必须是sysdba or sysoper,而这个方式是normal的
所以你可以用system用户,或者别的用户scott(必须先激活)等连接就可以了。
xiaosun2 2007-05-28
  • 打赏
  • 举报
回复
把 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:sys","sys","root");
改成:
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:sys","sys","manager");

richard_2010 2007-05-28
  • 打赏
  • 举报
回复
我回去试了下DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:sys","sys/root as dba","");这个方式,好象不行额
不好意思楼主,我在你的帖子里面问个问题,谁知道以管理员身份怎么连接啊?呵呵
真的很小奚 2007-05-28
  • 打赏
  • 举报
回复
connection to sys should be as sysdba or sysoper
连接到SYS用户必须是 sysdba or sysoper

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧