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

Oracle 四大核心概念關係圖譜:Service Name、Tablespace、Schema、User

     編輯:Oracle 資料庫基礎

一張圖搞懂 Oracle 邏輯/物理架構核心層級關係

Oracle 初學者最易混淆的四個概念——服務名、表空間、方案、用戶,本文通過層級歸納、定義解析、實戰 SQL 演示,建立清晰的心智模型。

一、核心結論速覽

  1. Service Name = 數據庫實例標識(安裝時指定),最外層邊界。
  2. Tablespace = 數據庫對象的物理存儲容器(數據文件集合)。
  3. Schema = 數據庫對象的邏輯命名空間/分類(表、視圖、索引、序列等)。
  4. User = 登錄賬號,一對一對應一個 Schema(同名),可視為 Schema 的別名。

層級關係:Service Name > Tablespace > Schema (User)

二、詳細定義與關聯

1. Schema:對象的邏輯集合

  • 包含:Tables, Views, Sequences, Stored Procedures, Synonyms, Indexes, Clusters, Database Links。
  • 企業管理器中「Schema」節點下列出的即各用戶同名 Schema。

2. User 與 Schema 的 1:1 綁定

  • 創建用戶 CREATE USER scott IDENTIFIED BY tiger; 同時隱式創建同名 Schema SCOTT。
  • Oracle 無獨立 CREATE SCHEMA 語句創建 Schema(有 CREATE SCHEMA 但用於批量創建對象),只能通過創建 User 間接創建。
  • 用戶登錄後,默認 Schema = 用戶名。訪問 emp 實際解析為 scott.emp。
  • 可通過 ALTER SESSION SET CURRENT_SCHEMA = other_user; 切換默認 Schema。

3. Tablespace:物理存儲層面

  • 用戶有默認表空間(DEFAULT TABLESPACE),創建對象不指定則存入默認表空間。
  • 可顯式指定:CREATE TABLE t (...) TABLESPACE users_data;
  • Schema 是邏輯歸屬,Tablespace 是物理歸屬,兩者正交,可任意組合。

三、實戰 SQL 驗證關係

-- 1. 授權 scott DBA 以便演示
GRANT dba TO scott;

-- 2. scott 登錄創建表(默認 schema=SCOTT,默認 tablespace=USERS)
CREATE TABLE test(name CHAR(10));
-- 3. scott 顯式指定 schema=SYSTEM 創建同名表
CREATE TABLE system.test(name CHAR(10));

-- 4. 插入數據區分
INSERT INTO test VALUES ('scott');
INSERT INTO system.test VALUES ('system');
COMMIT;

-- 5. 切換到 system 用戶
CONN system/manager
SELECT * FROM test;  -- 顯示 'system'(system 默認 schema=SYSTEM)

-- 6. 切換當前會話默認 schema 為 scott
ALTER SESSION SET CURRENT_SCHEMA = scott;
SELECT * FROM test;  -- 顯示 'scott'

-- 7. 查詢數據字典確認 OWNER (即 SCHEMA)
SELECT owner, table_name FROM dba_tables WHERE table_name = UPPER('test');
-- 結果:
-- OWNER   TABLE_NAME
-- SCOTT   TEST
-- SYSTEM  TEST

四、關鍵洞見

  • DBA_TABLES.OWNER = Schema 名 = User 名(對於普通用戶)。
  • 對象完整名稱 = SCHEMA.OBJECT,非 USER.OBJECT。
  • 權限授予對象是 User/Role,但對象歸屬是 Schema。
  • 一個 User 可訪問多個 Schema(有權限前提),一個 Schema 只能屬於一個 User。

五、記憶口訣

服務名裝表空間,表空間存數據文件;
用戶登錄得方案,方案裡裝表視圖。
方案等於用戶名,邏輯物理要分開。
創建對象指表空間,訪問對象帶方案名。

徹底理清這四個概念的層級與映射,是掌握 Oracle 多租戶、權限模型、數據遷移、備份恢復的基石。

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