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

Oracle 表空間、用戶、權限全生命週期管理實戰指南

     編輯:Oracle 資料庫基礎

一、表空間建立與規劃

臨時表空間

CREATE TEMPORARY TABLESPACE ext_temp
TEMPFILE 'D:\oracle\oradata\test\ext_temp.dbf'
SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
  • LOCAL 管理:位圖追蹤空閒空間,避免字典爭用
  • UNIFORM SIZE:固定 Extent 大小,減少碎片

永久資料表空間

CREATE TABLESPACE ext_data
LOGGING
DATAFILE 'D:\oracle\oradata\test\ext_data.dbf'
SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;
  • AUTOALLOCATE:Oracle 自動決定 Extent 大小(64K/1M/64M)
  • AUTO 區段空間管理:位圖管理自由列表,提升並發

二、用戶建立與預設表空間指定

CREATE USER test IDENTIFIED BY test
DEFAULT TABLESPACE ext_data
TEMPORARY TABLESPACE ext_temp
QUOTA UNLIMITED ON ext_data
QUOTA 100M ON ext_temp
PROFILE default
ACCOUNT UNLOCK;

關鍵點:

  • 明確指定 DEFAULT TABLESPACE 避免物件誤入 SYSTEM
  • 設定 QUOTA 限制儲存配額
  • 生產環境建議啟用 PASSWORD VERIFY FUNCTION 的 Profile

三、權限授予體系

角色授予(開發環境)

GRANT CONNECT, RESOURCE TO test;

系統權限精細控制(生產環境)

GRANT CREATE SESSION TO test;
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE TO test;
GRANT CREATE TRIGGER, CREATE TYPE, CREATE SYNONYM TO test;
-- 按需授予:DBA, EXP_FULL_DATABASE, IMP_FULL_DATABASE 等

物件權限

GRANT SELECT, INSERT, UPDATE, DELETE ON schema.table TO test;

四、用戶維護操作

  • 修改密碼:ALTER USER scott IDENTIFIED BY new_pass;
  • 解鎖帳號:ALTER USER scott ACCOUNT UNLOCK;
  • 變更預設表空間:ALTER USER test DEFAULT TABLESPACE new_ts;
  • 刪除用戶:DROP USER test CASCADE;(含物件)

五、權限與角色查詢速查

查詢目標DBA 視圖ALL 視圖USER 視圖
系統權限DBA_SYS_PRIVSALL_SYS_PRIVSUSER_SYS_PRIVS
物件權限DBA_TAB_PRIVSALL_TAB_PRIVSUSER_TAB_PRIVS
角色授予DBA_ROLE_PRIVS-USER_ROLE_PRIVS
所有角色DBA_ROLES--

六、匯入匯出 (Exp/Imp) 實戰範例

匯出

-- 全庫
exp system/pass@ORCL FILE=full.dmp FULL=Y LOG=full.log

-- 指定 Schema
exp system/pass@ORCL FILE=schema.dmp OWNER=(SCOTT,HR) LOG=schema.log

-- 指定表
exp scott/tiger@ORCL FILE=tables.dmp TABLES=(EMP,DEPT) LOG=tables.log

-- 條件匯出
exp scott/tiger@ORCL FILE=cond.dmp TABLES=EMP QUERY="WHERE deptno=10" LOG=cond.log

匯入

-- 全庫匯入
imp system/pass@ORCL FILE=full.dmp FULL=Y IGNORE=Y LOG=imp_full.log

-- 指定表匯入
imp scott/tiger@ORCL FILE=tables.dmp TABLES=(EMP,DEPT) LOG=imp_tables.log

-- 重映射 Schema
imp system/pass@ORCL FILE=schema.dmp FROMUSER=SCOTT TOUSER=NEW_SCOTT LOG=remap.log

IGNORE=Y:忽略建立錯誤繼續匯入;COMMIT=Y:批次提交加速大量資料匯入。

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