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

Oracle 建立表空間與用戶標準化腳本:從 TEMP/DATA 表空間到授權的最小權限實踐

     編輯:Oracle 資料庫基礎

標準化建立流程 (依序執行)

1. 建立暫存表空間

CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE 'E:\Oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
SIZE 32M
AUTOEXTEND ON NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

2. 建立永久資料表空間

CREATE TABLESPACE test_data
LOGGING
DATAFILE 'E:\Oracle\product\10.2.0\oradata\testserver\test_data01.dbf'
SIZE 32M
AUTOEXTEND ON NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;

3. 建立用戶並綁定表空間

CREATE USER username IDENTIFIED BY password
DEFAULT TABLESPACE test_data
TEMPORARY TABLESPACE test_temp
QUOTA UNLIMITED ON test_data
PASSWORD EXPIRE ACCOUNT UNLOCK;

4. 授予最小權限角色

GRANT CONNECT, RESOURCE TO username;

說明:CONNECT = CREATE SESSION,RESOURCE = CREATE TABLE/VIEW/SEQUENCE/PROCEDURE/TRIGGER/TYPE/SYNONYM/CLUSTER/INDEXTYPE/OPERATOR。生產環境建議改用精確授權 (參考 93476 文章)。

關鍵參數解析

子句必要性說明
TEMPFILE / DATAFILE必填指定 OS 檔案路徑,建議使用 OMF (OMF啟用時可省略)
AUTOEXTEND ON建議自動擴展避免 ORA-01652/01653,MAXSIZE 設上限防止佔滿磁碟
EXTENT MANAGEMENT LOCAL必填LMT 為標準,Dictionary Managed 已棄用
SEGMENT SPACE MANAGEMENT AUTO強烈建議ASSM 取代 freelists,減少高併發爭用
QUOTA UNLIMITED建議避免預設無配額導致無法建表,或指定具體配額
PASSWORD EXPIRE安全最佳實踐強制首次登入修改密碼

驗證腳本

-- 確認表空間建立
SELECT tablespace_name, contents, extent_management, allocation_type, segment_space_management
FROM dba_tablespaces WHERE tablespace_name IN ('TEST_TEMP','TEST_DATA');

-- 確認用戶建立
SELECT username, default_tablespace, temporary_tablespace, account_status
FROM dba_users WHERE username = 'USERNAME';

-- 確認權限
SELECT * FROM dba_sys_privs WHERE grantee = 'USERNAME';
SELECT * FROM dba_role_privs WHERE grantee = 'USERNAME';

結語

「表空間先行、用戶綁定、最小授權、驗證落地」四步驟標準化流程,可納入自動化部署管線 (Ansible/Terraform/Shell),確保環境一致性與合規性。

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