天天看點

Oracle資料庫之建立表空間與使用者

Oracle資料庫之建立表空間與使用者

一、建立表空間

基本文法表述:

Oracle資料庫之建立表空間與使用者
CREATE TABLESPACE tablespace_name
    [DATAFILE datafile_spec1 [,datafile_spec2] ......]
    [ { MININUM EXTENT integer [K|M]
        |BLOCKSIZE integer [K]
        |[ONLINE|OFFLINE]
        |logging clause
        |[PERMANENT|TEMPORARY]
        |extent_manager_clause
        |segment_manager_clause}
    ]      
Oracle資料庫之建立表空間與使用者

詳細的 ​

​CREATE TABLESPACE​

​ 文法描述請參考:​​http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_7003.htm#SQLRF01403​​

說明:

1.tablespace_name:

指出表空間的名稱。

2.datafile_spec1:

指出表空間包含的資料檔案。

Oracle資料庫之建立表空間與使用者
[filename]
[SIZE integer [ K | M ]] 
[REUSE] 
[AUTOEXTEND { OFF | ON 
              [NEXT integer [ K | M ]] 
              [MAXSIZE { UNLIMITED | integer [ K | M ] }] 
            }]      
Oracle資料庫之建立表空間與使用者

其中filename是資料檔案的全路徑名;SIZE是檔案的大小;REUSE表示檔案是否被重用;AUTOEXTEND表明是否自動擴充;NEXT表示資料檔案滿了以後,擴充的大小。

3.MININUM EXTENT integer [K|M]:

指出在表空間中區的最小值。這個參數可以減小空間碎片,保證在表空間的範圍是這個數值的整數倍。

4.BLOCKSIZE integer [K]

這個參數可以設定一個不标準的塊的大小。如果要設定這個參數,必須設定db_block_size,至少一個db_nk_block_size,并且聲明的integer的值必須等于db_nk_block_size。

注意:在臨時表空間不能設定這個參數。

5.[ONLINE|OFFLINE]

改變表空間的狀态。online使表空間建立後立即有效,這是預設值,offline使表空間建立後無效。

6.logging clause

{ LOGGING | NOLOGGING }      

這個子句聲明這個表空間上所有的使用者對象的日志屬性(預設是LOGGING),包括表,索引,分區,物化視圖,物化視圖上的索引,分區。

7.[PERMANENT|TEMPORARY]

指出表空間的屬性,是永久表空間還是臨時表空間。永久表空間存放的是永久對象,臨時表空間存放的是session生命期中存在的臨時對象。這個參數生成的臨時表空間建立後一直都是字典管理,不能使用extent management local選項。如果要建立本地管理表空間,必須使用create temporary tablespace。

8.extent_management_clause

Oracle資料庫之建立表空間與使用者
EXTENT MANAGEMENT
   { LOCAL
     [ AUTOALLOCATE
     | UNIFORM
       [ SIZE size_clause ]
     ]
     | DICTIONARY
   }      
Oracle資料庫之建立表空間與使用者

說明了表空間如何管理區。一旦你聲明了這個子句,隻能通過移植的方式改變這些參數。

如果希望表空間本地管理的話,聲明local選項。本地管理表空間是通過位圖管理的。autoallocate說明表空間自動配置設定範圍,使用者不能指定範圍的大小。隻有9.0以上的版本具有這個功能。uniform說明表空間的區的固定大小,預設是1m。

9.segment_manager_clause

SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }      

說明了如何管理段。隻為永久性的,本地管理表空間有關。可以指定是否應該跟蹤在使用空閑清單或位圖的表空間段的使用和自由空間。本選項不适用于臨時表空間。

示例:

Oracle資料庫之建立表空間與使用者
CREATE TABLESPACE tbs_01 
    DATAFILE 'demo.dbf'
    SIZE 40M
    AUTOEXTEND ON NEXT 5M MAXSIZE 100M
    ONLINE
    LOGGING
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M
    SEGMENT SPACE MANAGEMENT AUTO;      
Oracle資料庫之建立表空間與使用者

我們可以使用DROP TABLESPACE語句從資料庫中删除表空間:

DROP TABLESPACE tablespace 
   [ INCLUDING CONTENTS [ {AND | KEEP} DATAFILES ]
     [ CASCADE CONSTRAINTS ]
   ] ;      

使用詳情見:​​http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9004.htm#SQLRF01807​​

DROP TABLESPACE tbs_01
   INCLUDING CONTENTS AND DATAFILES;      

二、建立使用者

基本文法描述:

CREATE USER user
    IDENTIFIED BY password
    [DEFAULT TABLESPACE tablespace]
    [TEMPORARY TABLESPACE tablespace]      

詳細的文法與使用見:​​http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_8003.htm#SQLRF01503​​

1.user

使用者名。

2.password

密碼

3.DEFAULT TABLESPACE tablespace

使用者預設使用的表空間。

4.TEMPORARY TABLESPACE tablespace

使用者使用的臨時表空間。

CREATE USER sidney 
    IDENTIFIED BY out_standing1
    DEFAULT TABLESPACE tbs_01 
    TEMPORARY TABLESPACE temp      

使用者建立完畢後,并不能馬上使用,我們還需要為使用者配置設定權限或角色:

GRANT  privileges or role TO user;      

若要撤銷權限或角色:

REVOKE  privileges or role FROM user;      
Oracle資料庫之建立表空間與使用者
-- 把CONNECT、RESOURCE角色授予使用者sidney
GRANT CONNECT,RESOURCE TO sidney;
-- 撤銷使用者sidney的RESOURCE角色
REVOKE RESOURCE FROM sidney; 
-- 允許使用者檢視 EMP 表中的記錄
GRANT SELECT ON emp TO sidney;
-- 允許使用者更新 EMP 表中的記錄
GRANT UPDATE ON emp TO sidney;      
Oracle資料庫之建立表空間與使用者