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

1231 ワード

現象:
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つの方式に分けられます.オペレーティング・システム認証は、ローカル認証とも呼ばれる場合があります.
-OS認証: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";