oracle表空間 資料檔案 使用者的建立及刪除

2021-08-14 09:27:15 字數 3916 閱讀 2444

oracle資料庫:資料庫物件以及表資料都儲存在表空間中,建立使用者時可以指定對應的表空間。這樣使用者可以在各自的表空間中運算元據,互不干擾。

1. 表空間建立

若不清楚表空間對應檔案的路徑,可以登入系統使用者(sys/system)檢視已有表空間對應資料檔案的路徑

select * from dba_data_files;

用作資料庫運算過程中的資料儲存,或臨時表資料儲存等。用完之後系統會自動清理。若不建立則使用系統預設的臨時表空間temp

create temporary tablespace tempname --表空間名稱

tempfile '/oracle/oradata/orcl/temp001.dbf' --檔案路徑

size 200m --初始大小

autoextend on next 32m --自動擴充套件每次多少

maxsize 2048m --最大多少(也可以設定為unlimited,則最大為32g)

extent management local;

儲存資料庫物件,以及表資料。與臨時表空間最大的區別是資料永久性,不會被系統自動清空。

create tablespace db_data

datafile '/oracle/oradata/orcl/db_data01.dbf'

size 32m

autoextend on next 32m

maxsize 2048m

extent management local;

2. 資料檔案新增及修改

當表空間對應的資料檔案已經增長到上限值(自己設定的上限值,或者32g),此時則需要為該錶空間新增乙個資料檔案。

alter tablespace db_data add datafile '/oracle/oradata/orcl/db_data02.dbf' 

size 50m

autoextend on next 5m

maxsize 100m;

alter database datafile '/oracle/oradata/orcl/db_data02.dbf'

autoextend on next 5m

maxsize 100m;

alter database datafile '/oracle/oradata/orcl/db_data02.dbf'

resize 100m;

3. 使用者建立

sys使用者是超級使用者,具有最高許可權,具有sysdba角色,有create database的許可權

system使用者是管理操作員,許可權也很大。具有sysoper角色,沒有create database的許可權

登入系統使用者(sys/system),建立一般使用者。使用者指定的profile是限制資料庫使用者使用資源的一種手段

-- 建立使用者 

create user username --使用者名稱

identified by password --密碼

default tablespace db_data --指定永久性表空間

temporary tablespace temp --指定臨時表空間

profile default; --預設的profile

--檢視profile的各個引數資訊

select * from dba_profiles where profile='default';

4. 使用者授權

oracle中許可權分為系統許可權和物件許可權。可以直接授權,也可以通過授予角色得到角色的許可權。對於表空間預設是無限額的,不建議讓使用者在其他表空間隨意建表。一般授予 connect,resource即可。

--把角色授予使用者,該使用者也將擁有該角色的許可權

grant connect to username; --連線資料庫

grant resource to username; --建立資料庫實體(表,過程等)

grant dba to username; --建立資料庫結構

--針對表空間使用

grant unlimited tablespace to username; --使用者可以再其他表空間隨意建表,且無限額

--系統許可權(此處列舉幾個)

grant create cluster to username;

grant create procedure to username;

grant create synonym to username;

grant create trigger to username;

grant create view to username;

grant create job to username;

grant drop any table to username;

--物件許可權(此處列舉幾個)

grant delete any table to username;

grant update any table to username;

grant insert any table to username;

grant select any table to username;

5、刪除使用者

刪除使用者時,經常會碰到有人正在連線,無法刪除。需要登入系統使用者(sys/system)批量強制關閉連線。

--執行查詢出來的內容即可

select 'alter system kill session' '' || sid || ',' || serial# || ''';'

from v$session

where username = '***'; --填寫需要刪除的使用者名稱

清除連線之後,就可以在sys使用者下刪除使用者了,若使用者下已存在物件,則需要帶上 cascade,否則執行報錯。

drop user *** cascade;
6、刪除表空間

--刪除表空間

drop tablespace ***;

--刪除表空間同時刪除對應的資料檔案

drop tablespace *** including contents and datafiles;

ps:以上指令碼執行順序:建立表空間-->建立使用者。刪除使用者-->刪除表空間。

對於許可權,角色,使用者的說明,可以參看

Oracle的表空間 資料檔案 使用者

每乙個oracle資料庫都是由三種型別的檔案組成 資料檔案 data file 日誌檔案 log file 和控制檔案 control file 資料庫的檔案為資料庫資訊提供真正的物理儲存。每個資料庫有乙個或多個物理的資料檔案。邏輯資料庫結構 如表 索引等 的資料物理地儲存在資料庫的資料檔案中,資料...

移動表空間資料檔案

2011年5月31日 移動表空間資料檔案方法 一 首先啟用介質恢復即開啟歸檔模式,用sys使用者 如果已經開啟則省略該步驟 sql shutdown immediate 資料庫已經關閉。已經解除安裝資料庫。oracle 例程已經關閉。sql startup mount oracle 例程已經啟動。t...

Oracle 表空間 資料檔案自動增加

執行此指令碼之前需要建立名稱為 datafile no 的序列 最小值為1 增長量為1 最大值為 10000000 預設為在表空間his data下建立資料檔案。過程建立之後需要進行編譯,編譯成功後,建立job進行呼叫。間隔時間為 trunc sysdate 1,dd 1 24 每天呼叫。並且呼叫時...