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

Oracle SYSDBA權限管理:雙認證模式深度解析

     編輯:Oracle 資料庫基礎

權限層級釐清

  • SYSDBA:最高特權,涵蓋創建/啟動/關閉/恢復數據庫、歸檔模式切換、表空間備份等核心操作。普通DBA角色無法替代。
  • SYSOPER:次級特權,缺少CREATE DATABASE、RECOVER DATABASE UNTIL、WITH ADMIN OPTION授權權限。

認證模式選型矩陣

場景推薦模式核心配置
單機本地維護操作系統認證OS群組授權 + sqlnet.ora: NTS + init.ora: NONE
多庫集中遠程管理密碼文件認證orapwd創建 + init.ora: EXCLUSIVE/SHARED + sqlnet.ora: NONE

操作系統認證實施步驟

Windows (NT/2000/XP/2003)

  1. 建立本地群組 ORA_<SID>_DBA 或通用 ORA_DBA
  2. 將維護賬號加入該群組(安裝程式通常自動完成)
  3. sqlnet.ora:SQLNET.AUTHENTICATION_SERVICES = (NTS)
  4. init<SID>.ora:REMOTE_LOGIN_PASSWORDFILE = NONE
  5. 驗證:SQLPLUS / AS SYSDBA 或 CONNECT INTERNAL

Unix/Linux

  1. 預建 dba 群組與 oracle 用戶(安裝前置條件)
  2. init.ora:REMOTE_LOGIN_PASSWORDFILE = NONE(8.1+默認EXCLUSIVE,必須手改)
  3. 以oracle用戶登錄OS,SQLPLUS / AS SYSDBA

密碼文件認證實施步驟

# 1. 創建密碼文件
orapwd file=$ORACLE_HOME/dbs/orapw<SID> password=sys密碼 entries=10

# 2. 修改初始化參數
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE  # 單實例獨享,允許授權新SYSDBA用戶
# 或 SHARED  # 多實例共享,限制僅SYS/INTERNAL持有SYSDBA

# 3. 禁用OS認證
sqlnet.ora: SQLNET.AUTHENTICATION_SERVICES = (NONE)

# 4. 遠程登錄驗證
sqlplus sys/密碼@tns_alias AS SYSDBA

進階管理操作

授權普通用戶SYSDBA

-- 需以現有SYSDBA身份執行
GRANT SYSDBA TO scott;
-- scott可雙模式登錄:
-- 普通:CONN scott/tiger
-- 特權:CONN scott/tiger AS SYSDBA  --> 實際映射為SYS

查詢現有特權用戶

SELECT * FROM V$PWFILE_USERS;

擴充ENTRIES上限

  1. SHUTDOWN IMMEDIATE
  2. 刪除舊密碼文件
  3. 重新orapwd ... entries=更大值
  4. STARTUP
  5. 重新授權(原授權失效,建議先查詢V$PWFILE_USERS備份名單)

INTERNAL/SYS密碼遺忘急救

-- 方法1:以SYSDBA登錄後直接改
ALTER USER SYS IDENTIFIED BY 新密碼;  -- 同步修改INTERNAL

-- 方法2:重建密碼文件指定新密碼
orapwd file=... password=新密碼 entries=...
關鍵提示:
• Win2000+Oracle 8.1.6常因OS認證失敗報「憑證檢索失敗」,改sqlnet.ora = NONE強制走密碼文件即可。
• 安裝完成首要動作:修改SYS/SYSTEM/INTERNAL默認口令。
• 密碼文件EXCLUSIVE模式下,GRANT SYSDBA新用戶會自動寫入文件;SHARED模式下禁止此操作。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved