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

Oracle 9i 安裝與用戶權限體系建設標準化指南

     編輯:Oracle 資料庫相關知識

前言:標準化安裝是穩定運行的基石

Oracle 9i (9.2.0) 雖為經典版本,其安裝配置與權限體系設計原理至今仍具指導意義。本文規範安裝關鍵參數、字符集選擇、系統預設用戶、應用用戶創建與最小權限授權模型,構建可審計、可復現、符合最小權限原則的資料庫基線。

一、安裝關鍵參數標準化

參數標準值說明
安裝目錄 (ORACLE_BASE)/u01/app/oracle遵循 OFA (Optimal Flexible Architecture)
軟體目錄 (ORACLE_HOME)/u01/app/oracle/product/9.2.0版本化路徑,支援多版本共存
資料庫名 (DB_NAME)ORA9I全域唯一,與 SID 一致
實例名 (SID)ORA9I與 DB_NAME 一致,簡化管理
字符集 (CHARACTER SET)ZHS16GBK關鍵:支援簡體中文 (GBK),避免跨平台中文亂碼。禁用 US7ASCII、WE8ISO8859P1、UTF8 (9i 字符集遷移極其痛苦)
國家字符集AL16UTF16NCHAR/NVARCHAR2/NCLOB 儲存編碼,預設即可
資料庫區塊大小8192 (8KB)OLTP 標準,若為 DW 可考慮 16KB/32KB
進程數 (PROCESSES)300+預估最大併發 Session * 1.5
啟用歸檔模式安裝後立即啟用參考案例五 SOP

二、系統預設用戶與密碼管理

用戶預設密碼角色/用途上線前強制動作
SYSCHANGE_ON_INSTALL資料字典擁有者、SYSDBA修改強密碼、鎖定遠端登入 (O7_DICTIONARY_ACCESSIBILITY=FALSE)
SYSTEMMANAGER第二 DBA、管理工具修改強密碼、日常運維用此用戶
SCOTTTIGER範例 Schema生產環境 DROP USER SCOTT CASCADE
OUTLNOUTLNStored Outlines保留、鎖定
DBSNMPDBSNMPOEM 代理監控修改密碼、授權 OEM_MONITOR

密碼策略:Profile 限制 PASSWORD_LIFE_TIME=90, PASSWORD_REUSE_TIME=365, PASSWORD_VERIFY_FUNCTION (複雜度檢查)。

三、應用用戶創建標準流程

-- 1. 建立專用表空間 (資料/索引/臨時/撤銷分離)
CREATE TABLESPACE app_data DATAFILE '/u01/oradata/ORA9I/app_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE 10G
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE app_index DATAFILE '/u01/oradata/ORA9I/app_index01.dbf' SIZE 200M AUTOEXTEND ON NEXT 20M MAXSIZE 5G
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO;
CREATE TEMPORARY TABLESPACE app_temp TEMPFILE '/u01/oradata/ORA9I/app_temp01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 2G
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

-- 2. 創建應用用戶 (預設表空間指定,配額無限)
CREATE USER app_user IDENTIFIED BY "ComplexP@ssw0rd"
  DEFAULT TABLESPACE app_data
  TEMPORARY TABLESPACE app_temp
  QUOTA UNLIMITED ON app_data
  QUOTA UNLIMITED ON app_index
  PROFILE app_profile;  -- 密碼/資源 Profile

-- 3. 授予最小權限角色 (而非 DBA/RESOURCE/CONNECT)
GRANT CREATE SESSION TO app_user;
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE, CREATE TRIGGER, CREATE SYNONYM TO app_user;
-- 明確不授予: CREATE PUBLIC SYNONYM, DROP PUBLIC SYNONYM, ALTER DATABASE, ALTER SYSTEM, UNLIMITED TABLESPACE

-- 4. 建立應用專用角色 (業務權限聚合)
CREATE ROLE app_read;
GRANT SELECT ON app_user.table1 TO app_read;
GRANT SELECT ON app_user.table2 TO app_read;
-- ... 其他業務表 SELECT
CREATE ROLE app_write;
GRANT INSERT, UPDATE, DELETE ON app_user.table1 TO app_write;
-- ... 其他業務表 DML
-- 將角色授予具體帳號 (讀寫分離帳號)
GRANT app_read TO app_report_user;
GRANT app_write TO app_batch_user;

四、權限模型最佳實務:最小權限 + 角色聚合

  1. 拒絕 DBA/RESOURCE/CONNECT:RESOURCE 含 UNLIMITED TABLESPACE、CREATE TYPE 等高危權限;CONNECT 僅 CREATE SESSION,9i+ 已棄用。
  2. 系統權限最小化:僅授予開發必需的 CREATE OBJECT 類權限,禁止 ANY 類權限 (SELECT ANY TABLE, DROP ANY TABLE...)。
  3. 物件權限透過角色:建立 APP_READ, APP_WRITE, APP_ADMIN 角色,授予角色而非直接授予用戶,便於收回/審計。
  4. 審計關鍵操作:AUDIT CREATE TABLE, DROP TABLE, ALTER USER, GRANT ANY PRIVILEGE BY ACCESS;
  5. 定期審查:DBA_TAB_PRIVS, DBA_SYS_PRIVS, DBA_ROLE_PRIVS 產出權限報表,清理殭屍授權。

五、安全加固清單 (安裝後必做)

  • O7_DICTIONARY_ACCESSIBILITY = FALSE (init.ora) —— 禁止非 SYS 存取字典基表。
  • REMOTE_OS_AUTHENT = FALSE —— 禁止 OS 認證遠端登入。
  • SEC_CASE_SENSITIVE_LOGON = TRUE (11g+ 內建,9i 需補丁) —— 密碼大小寫敏感。
  • 刪除/鎖定預設範例 Schema (SCOTT, HR, OE, PM, SH, IX, BI)。
  • 監聽器 ADMIN_RESTRICTIONS_LISTENER=ON、PASSWORDS_LISTENER 設定密碼。
  • 啟用 SQLNET 加密:SQLNET.ENCRYPTION_SERVER = REQUIRED, SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)。

總結

Oracle 9i 安裝標準化的核心在於:字符集一步到位 (ZHS16GBK)、系統用戶密碼強制輪換、應用用戶表空間分離與配額控制、最小權限角色體系替代 DBA/RESOURCE、安全參數預設即加固。將上述流程固化為安裝 Runbook (含腳本、核對清單、驗證 SQL),新環境部署「一次做對,永久受益」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved