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

Oracle 用戶表空間建立完整指南:從查詢路徑到權限授予

     編輯:Oracle 資料庫基礎

前言

在學習或管理 Oracle 資料庫時,建立新用戶並分配專屬表空間是基本且關鍵的操作。本文將詳細記錄在現有資料庫實例上,從查詢資料檔位置、建立表空間、創建用戶到授予權限的完整標準流程,供初學者與 DBA 參考。

操作環境與前置準備

本範例以 Linux 作業系統為例,假設已安裝 Oracle 資料庫,並具備作業系統層級的 oracle 用戶權限。

  1. 登入 Linux:使用 oracle 用戶登入;若以 root 登入,請執行 su - oracle 切換身份。
  2. 以 SYSDBA 權限進入 SQL*Plus:執行 sqlplus "/as sysdba"。

步驟 1:查詢現有資料檔存放路徑

新建表空間前,建議先確認現有資料檔(.dbf)的存放目錄,以便規劃新表空間的檔案位置。

SELECT name FROM v$datafile;

查詢結果通常會顯示類似 /u01/app/oracle/oradata/ORCL/ 的路徑,新表空間的資料檔建議放置於同一目錄下。

步驟 2:建立表空間

以下範例建立一個名為 NOTIFYDB 的表空間,初始大小 200MB,啟用自動擴展、區域本地管理與自動段空間管理(ASSM)。

CREATE TABLESPACE NOTIFYDB
DATAFILE '/Oracle/oradata/test/notifydb.dbf'
SIZE 200M AUTOEXTEND ON
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;
  • AUTOEXTEND ON:空間不足時自動擴展,避免 ORA-01653 錯誤。
  • EXTENT MANAGEMENT LOCAL:Oracle 9i 後預設且推薦的管理方式,效能優於字典管理。
  • SEGMENT SPACE MANAGEMENT AUTO:使用位圖管理自由空間,減少爭用並提升並發效能。

步驟 3:建立用戶並指定預設表空間

CREATE USER hc_notify IDENTIFIED BY hc_passWord
DEFAULT TABLESPACE NOTIFYDB;

此指令建立用戶 hc_notify,密碼為 hc_passWord,並將其預設表空間指向剛建立的 NOTIFYDB。

步驟 4:授予必要權限

為讓用戶能正常開發與存取資料,需授予核心角色與系統權限:

-- 基本連線與建表權限
GRANT CONNECT, RESOURCE TO hc_notify;

-- 移除表空間配額限制(視安全策略決定是否授予)
GRANT UNLIMITED TABLESPACE TO hc_notify;

-- 進階開發常用權限
GRANT CREATE DATABASE LINK TO hc_notify;
GRANT SELECT ANY SEQUENCE, CREATE MATERIALIZED VIEW TO hc_notify;

安全提醒:UNLIMITED TABLESPACE 與 SELECT ANY SEQUENCE 屬於高權限,生產環境請遵循「最小權限原則」,改以 ALTER USER ... QUOTA ... ON ... 精確控制配額。

驗證與後續操作

完成上述步驟後,即可使用 hc_notify/hc_passWord 連線至指定實例,開始建立資料表、索引等物件。建議後續定期監控表空間使用率(查詢 DBA_FREE_SPACE),並依業務增長適時擴充資料檔或新增資料檔。

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