| 賬戶 | 角色定位 | 核心權限與對象 | 默認口令(安裝即必改) |
|---|---|---|---|
| SYS | 數據庫「根用戶」,擁有最高特權 | 擁有所有數據字典基表、V$ 動態視圖、內部包/過程/類型;創建 DBA/CONNECT/RESOURCE 等標準角色;唯一可訪問特定內部字典表(如 USER$, OBJ$) |
CHANGE_ON_INSTALL |
| SYSTEM | 日常 DBA 運維默認賬戶 | 擁有所有數據庫對象完全權限;許多第三方工具依賴 SYSTEM 連接;不擁有字典基表,無法授權字典對象 | MANAGER |
SYS 擁有不受約束的系統特權(SYSDBA),任何誤操作(如 DROP TABLE sys.user$)均可導致實例不可用。審計追蹤也難以區分「人為失誤」與「惡意破壞」。
CREATE USER dba_zhang IDENTIFIED BY complex_pwd; GRANT DBA TO dba_zhang; 實現「人、賬、責」三統一。ALTER USER sys ACCOUNT LOCK; ALTER USER system ACCOUNT LOCK; 僅在緊急恢復時臨時解鎖。REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 允許除 SYS 外用戶進入密碼文件。ENTRIES 上限。SHARED 模式避免多實例共享風險。# 創建密碼文件 (Linux/Unix)
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=StrongPwd entries=10
# 授予/收回 SYSDBA
GRANT SYSDBA TO dba_zhang;
REVOKE SYSDBA FROM dba_zhang;
# 查看密碼文件成員
SELECT * FROM v$pwfile_users;
利用 ALTER USER xxx IDENTIFIED BY VALUES 'invalid_lowercase_string'; 將存儲密碼設置為無效小寫雜湊值,Oracle 無法生成匹配的加密串,從而實現「賬號存在但不可登錄」的凍結效果,優於 ACCOUNT LOCK 的審計可見性。
SYS 是「神」,SYSTEM 是「相」,日常運維應由「具名大臣」執行。嚴格管控密碼文件、最小化特權暴露、建立可審計的操作鏈路,是 Oracle 數據庫安全基線的核心。