首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 修改使用者名稱:直接更新 SYS.USER$ 基表操作備忘

     編輯:Oracle 資料庫相關知識

特殊情境下(如匯入衝突、測試需求)需直接修改 Oracle 使用者名稱,可透過更新 SYS.USER$ 基表達成。警告:此操作屬非支援手段,風險自負,生產環境嚴禁直接操作基表。

操作步驟

  1. 確認目標使用者存在及 USER#:
    SELECT USER#, NAME FROM USER$ WHERE NAME = 'VIDS';
  2. 更新使用者名稱(假設 USER#=8759):
    UPDATE USER$ SET NAME = 'VIDS123' WHERE USER# = 8759;
    COMMIT;

風險與副作用

  • 密碼驗證、權限、審計、資源消費者群組等中繼資料可能不同步。
  • 可能導致 DBA_USERS、ALL_USERS 顯示異常,應用連線失敗。
  • Data Pump 匯出/匯入、RMAN、Streams、GoldenGate 等工具可能異常。

標準替代方案(推薦)

  1. 建立新使用者,授予相同權限/角色/配額。
  2. 使用 Data Pump (expdp/impdp) 遷移物件與資料(REMAP_SCHEMA)。
  3. 切換應用連線至新使用者。
  4. 驗證無誤後刪除舊使用者(DROP USER ... CASCADE)。

參考:標準建立使用者語法

CREATE USER new_user IDENTIFIED BY password
  DEFAULT TABLESPACE users
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON users;

GRANT CONNECT, RESOURCE TO new_user;
-- 依需求授予其他權限/角色
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved