[獨孤九劍]Oracle知識點梳理(一)表空間、用戶

本系列連接導航:

[獨孤九劍]Oracle知識點梳理(一)表空間、用戶html

[獨孤九劍]Oracle知識點梳理(二)數據庫的鏈接數據庫

[獨孤九劍]Oracle知識點梳理(三)導入、導出session

[獨孤九劍]Oracle知識點梳理(四)SQL語句之DML和DDLide

[獨孤九劍]Oracle知識點梳理(五)數據庫經常使用對象之Table、View函數

[獨孤九劍]Oracle知識點梳理(六)數據庫經常使用對象之Procedure、function、Sequence編碼

[獨孤九劍]Oracle知識點梳理(七)數據庫經常使用對象之Cursorspa

[獨孤九劍]Oracle知識點梳理(八)常見Exception debug

[獨孤九劍]Oracle知識點梳理(九)數據庫經常使用對象之package日誌

[獨孤九劍]Oracle知識點梳理(十)%type與%rowtype及經常使用函數code

一、表空間

  Oracle 的結構是 區/段、表空間、用戶、表...(區段是Oracle存儲方面的概念,編碼人員不須要了解過多)。當咱們安裝完Oracle後,默認就會擁有一個數據庫,以後的全部操做,都是在這個默認的數據庫中進行的。

  注: 這裏要與SqlServer的數據庫(database)概念區別開,SqlServer中的數據庫是咱們最常操做的,給咱們的印象是每一個數據庫是相互隔離的,不一樣用戶(user)登陸後可看到全部數據庫並進行操做;而Oracle中咱們的操做都是在同一個數據庫(database或叫數據庫實例)中進行的,起到隔離做用的是用戶(user),不一樣用戶(user)登陸後,只能看到本身所擁有的對象(如表、視圖、過程、函數等);固然,以上的前提是權限最小的狀況下。

  用戶(user)擁有多個表(Table)、視圖(View)、存儲過程(Procedure)、函數(Function)、包(packgae)等;用戶及其包含的對象要存儲到某一個表空間中;一個表空間能夠存儲多個用戶信息。

1.一、操做表空間  

  Oracle的表空間分爲:

  • 永久表空間(也叫數據表空間,存放永久性數據,如表、索引等)
  • 臨時表空間(不能存放永久性對象,用於保存數據庫排序,分組時產生的臨時數據)
  • UNDO表空間(保存數據修改前的鏡像)

1.1.一、操做永久表空間

a) 建立(表空間文件爲1個)

1 create tablespace tablespaceName 
2     logger -- 可將表空間的建立信息記錄到Oracle的日誌中
3     datafile 'tablespaceName.dbf' --保存文件的路徑,習慣上將表空間的名稱用於文件的名稱
                     --(可設置絕對路徑,相對路徑的話會保存到默認目錄下)
4 size 64m --最初的數據文件大小 5 autoextend on --開啓自增加 6 next 64m maxsize 1024m --每次增加64m,最大1024m 7 extent management local; --extent management 有兩種方式 local(本地管理,默認);
                                  --dictionary(數據字典管理)

b) 建立(表空間文件爲多個)

1 create tablespace tablespaceName 
2     logger 
3     datafile 
4     'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --設置自增加且無上限
5     'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited,
6     'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited
7     extent management local;

c) 表空間增長文件

1 alter tablespace tablespaceName
2add datafile 'tablespaceName04.dbf'
3     size 64m autoextend on
4next 64m maxsize unlimited;

d) 刪除表空間

1 drop tablespace tablespaceName including contents and datafiles cascade constraints;

1.1.二、建立臨時表空間

a) 建立(表空間文件爲1個)

1 create tablespace tablespaceName 
2     logger -- 可將表空間的建立信息記錄到Oracle的日誌中
3     tempfile 'tablespaceName.dbf' --保存文件的路徑,習慣上將表空間的名稱用於文件的名稱
                     --(可設置絕對路徑,相對路徑的話會保存到默認目錄下)
4 size 64m --最初的數據文件大小 5 autoextend on --開啓自增加 6 next 64m maxsize 1024m --每次增加64m,最大1024m 7 extent management local; --有兩種方式 local(本地管理,默認)、dictionary(數據字典管理)

b) 建立(表空間文件爲多個)

1 create tablespace tablespaceName 
2   logger 
3   tempfile 
4   'tablespaceName01.dbf' size 64m autoextend on next 64m maxsize unlimited, --設置自增加且不設置上線
5   'tablespaceName02.dbf' size 64m autoextend on next 64m maxsize unlimited,
6   'tablespaceName03.dbf' size 64m autoextend on next 64m maxsize unlimited
7   extent management local;

c) 給表空間增長文件

1 alter tablespace tablespaceName
2   add tempfile 'tablespaceName04.dbf' size 64m autoextend on next 64m maxsize unlimited;

d) 刪除表空間

1 drop tablespace tablespaceName including contents and datafiles cascade constraints;

1.1.三、建立UNDO表空間

a) 建立

1 create undo tablespace tablespaceName datafile 'tablespaceName.dbf' size 64m;

b) 修改系統默認UNDO表空間(有UNDOTBS修改成本身建立的)

1 alter system set undo_tablespace=tablespaceName;

c) 刪除UNDO表空間

1 drop tablespace "tablespaceName" including contents and datafiles;

 1.二、建立用戶

  用戶(user)的建立過程須要:a)設置用戶名、密碼;b)設置數據表空間;c)設置臨時表空間;d)設置權限,幾個步驟。

  • 建立用戶,設置用戶名、密碼、表空間
1 create user userName identified by password
2   defalut tablespace dataTablespaceName
3   temporary tablespace tempTablespaceName; -- a、b、c
  • 設置權限
1 grant connect,resource,exp_full_database,imp_full_database to userName;    --d
  • 用戶的修改及刪除

1 --修改密碼
2 alter user userName identified by password2;
3 
4 --刪除用戶及其擁有對象
5 drop user userName cascade;

1.2.一、權限和角色

  在建立用戶的過程當中,有設置權限的操做。Oracle的內置了多個角色,角色擁有不一樣權限。

a) Oralce的特殊權限

  1. 系統權限unlimited tablespace是隱含在dba, resource角色中的一個系統權限. 當用戶獲得dba或resource的角色時, unlimited tablespace系統權限也隱式授權給用戶.
  2. 系統權限unlimited tablespace不能被授予role, 能夠被授予用戶.
  3. 系統權限unlimited tablespace不會隨着resource, dba被授予role而授予給用戶.

b) 特殊角色

  1. dba角色,是受權數據庫管理員的權限
  2. connect角色, 是授予最終用戶的典型權利,最基本的 一個(CREATE SESSION)
  3. resource角色,是授予開發人員的 默認有八個權限(CREATE SEQUENCE,CREATE TRIGGER,CREATE CLUSTER,CREATE PROCEDURE,CREATE TYPE,CREATE OPERATOR,CREATE TABLE,CREATE INDEXTYPE)
  4. exp_full_database角色,擁有導出數據庫的權限
  5. imp_full_database角色,擁有導入數據庫的權限

c) 用戶受權經常使用參數:

 1     connect、resource、dba、unlimited tablespace、
 2     create session --建立會話
 3     create any sequence --建立序列
 4     create any table --建立表
 5     create any view --建立視圖
 6     create any index --建立索引
 7     create any procedure --建立存儲過程
 8     create any directory --建立目錄
 9 
10     alter session --修改會話
11     alter any sequence --修改序列
12     alter any table --修改表
13     alter any view --修改視圖
14     alter any index --修改索引
15     alter any procedure --修改存儲過程
16     alter any directory --修改目錄
17 
18     drop session --刪除會話
19     drop any sequence --刪除序列
20     drop any table --刪除表
21     drop any view --刪除視圖
22     drop any index --刪除索引
23     drop any procedure --刪除存儲過程
24     drop any directory --刪除目錄
25 
26     select any table --查詢表
27     select any dictionary --查詢目錄
28     insert any table
29     update any table
30     delete any table
31     debug any procedure --debug存儲過程
32     debug connect session 
33     exp_full_database --導出
34     imp_full_database --導入

1.三、用戶權限查詢(須要擁有dba角色)

1.3.一、查看用戶擁有那些角色

1 select * from dba_role_privs a where a.grantee='userName';
2     --
3 select * from dba_sys_privs a where a.grantee='userName';

1.3.二、查看角色擁有那些權限

1 select ROLE, PRIVILEGE from role_sys_privs where role='RESOURCE'; --RESOURCE,CONNECT,DBA
2   --
3 select grantee,privilege from dba_sys_privs where grantee='RESOURCE';

1.3.3,爲用戶取消角色

revoke resource from userName;

1.3.4,爲用戶取消權限

revoke unlimited tablespace from userName;

1.3.5,最後附加一個很是有用的技巧:查看Oracle的版本號

select * from v$version where rownum <=1; 

  當不一樣版本數據庫的導入導出操做是,須要標記版本號

相關文章
相關標籤/搜索