Oracle的表空間、使用者和使用者授權

發表於2016-05-11

一:Oracle表空間

1,Oracle表空間與SQL Server檔案組對比

SQL Server的檔案組(檔案組包括若干MDF,NDF資料檔案)對我們來說並不陌生,前段時間我在部落格“怎樣玩轉千萬級別的資料”提到了過表分割槽的概念,其實表分割槽說到本質上就是按一定條件把不同資料放在不同的資料檔案裡,這些資料檔案在物理上是相對獨立的,在邏輯上又是一個整體。特別強調一下,在SQL Server中,建表時是預設把所有的表都儲存在PRIMARY預設檔案組 ,當資料庫中表很多,並且資料量很大時,會導致資料庫效能嚴重下降,對於一些大資料的處理,有必要將一些大表資料放到不同的檔案組中,以提高資料庫的效能。這也是優化SQL Server 資料庫的一個重要手段。

從SQL Server轉到Oracle也許會感到不適,因為Oracle裡沒有檔案組和資料檔案的概念。但是有表空間的概念,表空間是Oracle的邏輯結構,一個Oracle資料庫可以有一個或者多個表空間,一個表空間又對應著多個物理的資料庫檔案。其實SQL Server的檔案組轉到Oracle就是表空間,Oracle的表空間轉到SQL Server就是檔案組。這篇博文重點來討論Oracle的表空間。

2,建立,修改,刪除Oracle表空間

Oracle的表空間分了幾種型別,臨時表空間,使用者表空間,還原表空間,大檔案表空間等,我選擇臨時表空間和使用者表空間為例來演示怎麼在Oracle中建立表空間,建立表空間,一般都是DBA乾的事情,所以我選擇sys的使用者登入建立表空間。

2.1,建立臨時表空間,用TEMPFILE 關鍵字,下邊幾個引數要重點注意一下。

SIZE *[K,M]表空間的初始大小,單位可以是[K,M]

MAXSIZE *[K,M]表空間的最大儲存值,maxsize unlimited 是指表空間的大小不受限制。

AUTOEXTEND ON NEXT *[K,M] 設定表空間自動擴充套件

EXTENT MANAGEMENT LOCAL本地管理表空間。

extent是“區間”的意思,在oracle資料庫中:extent management 有兩種方式 extent management local(本地管理); extent management dictionary(資料字典管

理)預設的是local本地管理表空間有自動分配(AUTOALLOCATE)和統一大小分配(UNIFORM)兩種空間分配方式,自動分配方式(AUTOALLOCATE)是由系統來自動決定extents

大小,而統一大小分配(UNIFORM)則是由使用者指定extents大小。這兩種分配方式都提高了空間管理效率。uniform:預設為1M大小,在temp表空間裡為預設的,但是不能被應用

在undo表空間.

2.2,建立使用者表空間,引數與臨時表空間基本一致

二:Oracle使用者

1,建立使用者:

建立使用者時,需要注意如下幾個引數。

IDENTIFIED BY *** ,使用者的密碼。

DEFAULT TABLESPACE  *** 預設使用者表空間。

TEMPORARY TABLESPACE *** 預設臨時空間。

2,修改密碼:

3,刪除使用者以及跟使用者關聯的物件:

三:Oracle使用者授權

1,Oralce的特殊許可權

1.1,系統許可權unlimited tablespace是隱含在dba, resource角色中的一個系統許可權. 當使用者得到dba或resource的角色時, unlimited tablespace系統許可權也隱式受權給使用者.

1.2,系統許可權unlimited tablespace不能被授予role, 可以被授予使用者.

1.3,系統許可權unlimited tablespace不會隨著resource, dba被授予role而授予給使用者.

2,特殊角色

2.1,DBA角色,是授權資料庫管理員的許可權

2.2,CONNECT角色, 是授予終端使用者的典型權利,最基本的  一個(CREATE SESSION)

2.3,RESOURCE角色,是授予開發人員的  預設有八個許可權(CREATE SEQUENCE,CREATE TRIGGER,CREATE CLUSTER,CREATE PROCEDURE,CREATE TYPE,CREATE OPERATOR,CREATE TABLE,CREATE INDEXTYPE)

2.4,exp_full_database角色,擁有匯出資料庫的許可權

2.5,imp_full_database角色,擁有匯入資料庫的許可權

3,使用者授權示

四:查詢使用者的許可權

以下的查詢中,基本都要以DBA的角色進行查詢,如果許可權不夠,有可能查詢不出來資料。

 1,檢視使用者擁有那些角色

2,檢視角色擁有那些許可權

3,為使用者取消角色

 4,為使用者取消許可權

5,最後附加一個非常有用的技巧:檢視Oracle的版本號。

五:總結

這些是Oracle的入門級知識,不是什麼高深的理論,但是是經過專案的實踐提煉,不管DBA還是開發人員都能用到,寫出來與大家共勉。

寫到最後,你們也要給我動力,幫忙“贊”一下,“贊”的高尿的遠!

相關文章