首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 僅能用 SYS/SYSTEM 登入?ORA-28009 原因與解決、誤刪日誌導致非系統用戶無法登入的慘痛教訓

     編輯:Oracle 資料庫基礎

現象一:SYS 登入報 ORA-28009


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

原因

CONNECT username/password@alias 語法中,SYS 必須顯式指定權限:


-- 正確
CONN sys/password@db AS SYSDBA
-- 或登入介面「連線身分」選 SYSDBA

現象二:誤刪 *.log/*.tmp 導致僅剩 SYS/SYSTEM 可登入

災難現場

執行批次檔:


DEL /F /S /Q %SYSTEMDRIVE%\*.log
DEL /F /S /Q %SYSTEMDRIVE%\*.tmp
...

誤刪 Oracle 警示日誌、監聽日誌、審計檔、甚至密碼檔(orapwSID)、網路配置。

後果

  • 非 SYS/SYSTEM 用戶登入失敗(密碼驗證機制損壞)。
  • 監聽器無法啟動(listener.log 遺失、listener.ora 損壞)。
  • 唯一恢復路徑:重裝 Oracle 或從完整備份還原 $ORACLE_HOME/dbs、$ORACLE_BASE/admin、$ORACLE_HOME/network/admin。

鐵律防護

  1. 嚴禁在 Oracle 安裝目錄、資料目錄、備份目錄執行通配符刪除。
  2. 日誌清理請用 ADRCI PURGE、LOG_ROTATE、或定時腳本精確匹配 alert_*.log.<日期>。
  3. 密碼檔 orapwSID、listener.ora、tnsnames.ora、sqlnet.ora 納入備份清單。
  4. OS 層面對 $ORACLE_HOME、$ORACLE_BASE 設寫保護或快照。

補充:建立普通用戶驗證流程


CREATE TABLESPACE price DATAFILE 'price.dbf' SIZE 10M;
CREATE USER price IDENTIFIED BY price DEFAULT TABLESPACE price;
GRANT CONNECT, RESOURCE TO price;
CONN price/price  -- 正常連線
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved