程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> [獨孤九劍]Oracle知識點梳理(一)表空間、用戶,oracle知識點

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

編輯:Oracle教程

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


本系列鏈接導航:

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

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

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

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

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

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

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

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

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

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

1、表空間

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

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

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

1.1、操作表空間  

  Oracle的表空間分為:

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

1.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.2、創建臨時表空間

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.3、創建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.2、創建用戶

  用戶(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.1、權限和角色

  在創建用戶的過程中,有設置權限的操作。Oracle的內置了多個角色,角色擁有不同權限。

a) Oralce的特殊權限

b) 特殊角色

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.3、用戶權限查詢(需要擁有dba角色)

1.3.1、查看用戶擁有那些角色

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.2、查看角色擁有那些權限

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; 

  當不同版本數據庫的導入導出操作是,需要標記版本號

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved