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 每天呼叫。並且呼叫時...