oracle 表空間創建和刪除


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 = 'XXX'; --填寫需要刪除的用戶名
清除連接之后,就可以在sys用戶下刪除用戶了,若用戶下已存在對象,則需要帶上 cascade,否則執行報錯。
drop user XXX cascade;
6、刪除表空間
--刪除表空間
drop tablespace XXX;
--刪除表空間同時刪除對應的數據文件
drop tablespace XXX including contents and datafiles;
ps:以上腳本執行順序:創建表空間-->創建用戶。刪除用戶-->刪除表空間。
對於權限,角色,用戶的說明,可以參看 https://www.cnblogs.com/mohai/archive/2013/05/10/3071166.html
---------------------
作者:秦時蓋聶
來源:CSDN
原文:https://blog.csdn.net/qinshi965273101/article/details/78988698
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM