Oracle表空間與權(quán)限的深入講解
表空間
表空間是數(shù)據(jù)庫(kù)的邏輯劃分,一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù)。所有的數(shù)據(jù)庫(kù)對(duì)象都存放在指定的表空間中。但主要存放的是表,所以稱作表空間。
Oracle中很多優(yōu)化都是基于表空間的設(shè)計(jì)理念而實(shí)現(xiàn)的,一個(gè)數(shù)據(jù)庫(kù)可以包含多個(gè)表空間,一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù)。一個(gè)表空間包含多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間。
Oracle 數(shù)據(jù)庫(kù)中至于存放一個(gè)表空間,即SYSTEM的表空間。
表空間的典型應(yīng)用
- 控制用戶所占用的表空間配額
- 建立不同的表空間,為其設(shè)置最大的存儲(chǔ)容量,然后把用戶歸屬于這個(gè)表空間。如此的話,這個(gè)用戶的存儲(chǔ)容量,就受到這個(gè)表空間大小的限制。
- 控制數(shù)據(jù)庫(kù)所占用的磁盤空間
- 靈活放置表空間,提高數(shù)據(jù)庫(kù)的輸入輸出性能。
- 可以將不同類型的數(shù)據(jù)放置不同的表空間中,比如與湖南省相關(guān)的數(shù)據(jù)文件就放置在湖南省的這個(gè)表空間中。北京的就放在北京這個(gè)表空間中。
- 大表的排序操縱
- 針對(duì)這種容量比較大的表對(duì)象,往往把它放在一個(gè)獨(dú)立的表空間,以提高數(shù)據(jù)庫(kù)性能。
- 針對(duì)這種容量比較大的表對(duì)象,往往把它放在一個(gè)獨(dú)立的表空間,以提高數(shù)據(jù)庫(kù)性能。
默認(rèn)表空間
系統(tǒng)中默認(rèn)創(chuàng)建的幾個(gè)表空間
- SYSTEM
- 所有的dictionary object都存在SYSTEM表空間里面,存在SYS用戶的表,視圖,存儲(chǔ)過程對(duì)象。
- SYSAUX
- 作為SYSTEM表空間的輔助表空間,減輕SYSTEM表空間負(fù)荷。
- USERS
- 存儲(chǔ)用戶創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象
- UNDOTBS
- 存儲(chǔ)撤銷信息的undo表空間。
- EXAMPLE
- 數(shù)據(jù)庫(kù)示例的表空間
- TEMP
- 臨時(shí)表空間主要用途是在數(shù)據(jù)庫(kù)進(jìn)行排序運(yùn)算,管理索引,訪問視圖等操縱時(shí)提供的臨時(shí)的運(yùn)算空間,當(dāng)運(yùn)算完成之后系統(tǒng)會(huì)自動(dòng)清理。
- 臨時(shí)表空間主要用途是在數(shù)據(jù)庫(kù)進(jìn)行排序運(yùn)算,管理索引,訪問視圖等操縱時(shí)提供的臨時(shí)的運(yùn)算空間,當(dāng)運(yùn)算完成之后系統(tǒng)會(huì)自動(dòng)清理。
表空間查詢命令
查詢所有的表空間
select * from V$tablespace
查看表空間的數(shù)據(jù)文件
select file_name,tablespace_name from dba_data_files
查看用戶的默認(rèn)表空間
select default_tablespace,temporary_tablespace from dba_users where username='用戶名';
查看指定表空間有哪些表
select table_name,tablespace_name from dba_tables where tablespace_name='表空間名稱'
創(chuàng)建表空間
create tablespace test_data datafile 'test_data.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local
創(chuàng)建臨時(shí)表空間
create temporary tablespcae test_temp tempfile 'test_temp.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local
刪除表空間
drop tablespace 表空間名 including contents and datafiles
給用戶賦予表空間
create user 用戶名 identified by 密碼 default tablespace 默認(rèn)表空間 temporary tablespace 臨時(shí)表空間
用戶與表空間的關(guān)系
一個(gè)用戶可以使用一個(gè)或者多個(gè)表空間,一個(gè)表空間也可以供多個(gè)用戶使用。
用戶和表空間沒有隸屬關(guān)系,表空間是一個(gè)用來管理存儲(chǔ)數(shù)據(jù)的邏輯概念,表空間只是和數(shù)據(jù)文件發(fā)生關(guān)系,數(shù)據(jù)文件是物理的,一個(gè)表空間可以包含多個(gè)數(shù)據(jù)文件,而一個(gè)數(shù)據(jù)文件只能隸屬一個(gè)表空間。
查看用戶默認(rèn)表空間
select username,deafult_tablespace from dba_users where username='用戶名'
查看當(dāng)前用戶擁有的表
select table_name from user_tables
權(quán)限分類
1、系統(tǒng)權(quán)限
系統(tǒng)規(guī)定用戶使用數(shù)據(jù)庫(kù)的權(quán)限。(系統(tǒng)權(quán)限是對(duì)用戶而言)。系統(tǒng)權(quán)限只能由DBA用戶授出
最開始就是這兩個(gè)用戶(sys,system)
2、對(duì)象權(quán)限
某種權(quán)限用戶對(duì)其他用戶的表或者視圖存取權(quán)限。(是針對(duì)表或視圖而言)
系統(tǒng)權(quán)限
允許用戶執(zhí)行特定的數(shù)據(jù)庫(kù)動(dòng)作,如創(chuàng)建表、創(chuàng)建索引、連接實(shí)例等。
- dba角色: 擁有全部特權(quán),是系統(tǒng)最高權(quán)限。
- resource角色:擁有resource權(quán)限的用戶只可以訪問數(shù)據(jù)庫(kù)對(duì)象。
- connect角色:擁有connect權(quán)限的用戶只可以登錄Oracle,不可以訪問數(shù)據(jù)庫(kù)對(duì)象
注意:以上都是角色,不算單個(gè)權(quán)限,算是一群權(quán)限的集合。
查看所有系統(tǒng)權(quán)限
SELECT * FROM SYSTEM_PRIVILEGE_MAP
系統(tǒng)權(quán)限
允許用戶操縱一些特定的對(duì)象,如讀取視圖,可更新某些列、執(zhí)行存儲(chǔ)過程等
select, update, insert, alter, index, delete, all …… //all包括所有權(quán)限 execute //執(zhí)行存儲(chǔ)過程權(quán)限
給用戶授權(quán)
系統(tǒng)權(quán)限
grant 系統(tǒng)權(quán)限 to 用戶名 [WITH ADMIN OPTION] grant connect, resource to 用戶名;
對(duì)象權(quán)限
grant 對(duì)象權(quán)限 on 對(duì)象 to 用戶 [WITH GRANT OPTION] grant select, update, insert on product to 用戶名; grant all on product to 用戶名; // all 表示全部對(duì)象權(quán)限 grant all on product to 用戶名; // public表示是所有的用戶
撤銷用戶權(quán)限
撤銷系統(tǒng)權(quán)限
revoke 系統(tǒng)權(quán)限 from 用戶; revoke resource from 用戶名;
撤銷對(duì)象權(quán)限
revoke 對(duì)象權(quán)限 on 對(duì)象 from 用戶 revoke select, update on product from 用戶
角色
角色就是一組權(quán)限(privilege),更加方便對(duì)權(quán)限進(jìn)行管理,每種角色都用于執(zhí)行一些特定的管理任務(wù)。
- 創(chuàng)建角色/刪除角色
create role 角色名 / drop role 角色名
- 給角色授權(quán)
系統(tǒng)權(quán)限: grant 系統(tǒng)權(quán)限 to 角色
對(duì)象權(quán)限: grant 對(duì)象權(quán)限 on 對(duì)象 to 角色
- 撤消角色權(quán)限
revoke 系統(tǒng)權(quán)限 from 角色
revoke 對(duì)象權(quán)限 on 對(duì)象 from 角色
查看權(quán)限
查看當(dāng)前用戶所有系統(tǒng)權(quán)限
select * from user_sys_privs
查看當(dāng)前用戶所屬角色
select * from user_role_privs
角色有哪些系統(tǒng)權(quán)限
select * from role_sys_privs
角色有哪些對(duì)象權(quán)限(sys用戶下)
select * from role_tab_privs
用戶有哪些對(duì)象權(quán)限
select * from user_tab_privs
總結(jié)
到此這篇關(guān)于Oracle表空間與權(quán)限的文章就介紹到這了,更多相關(guān)Oracle表空間與權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle查詢語句中rownum與rowid的不同之處分析
這篇文章主要介紹了Oracle查詢語句中rownum與rowid的不同之處分析,需要的朋友可以參考下2014-07-07
使用PL/SQL Developer連接Oracle數(shù)據(jù)庫(kù)的方法圖解
之前因?yàn)轫?xiàng)目的原因需要使用Oracle數(shù)據(jù)庫(kù),由于時(shí)間有限沒辦法從基礎(chǔ)開始學(xué)習(xí),而且oracle操作的命令界面又太不友好,于是就找到了PL/SQL Developer這個(gè)很好用的軟件來間接使用數(shù)據(jù)庫(kù),下面簡(jiǎn)單介紹一下如何用這個(gè)軟件連接Oracle數(shù)據(jù)庫(kù)2016-12-12
oracle數(shù)據(jù)庫(kù)鎖表的原因及解決方法
出現(xiàn)鎖表的情況很多種,但是大部分情況都是更新表,然后并沒有提交,導(dǎo)致數(shù)據(jù)庫(kù)的表被鎖的情況,處理方式也比較簡(jiǎn)單,本文小編給大家介紹了oracle數(shù)據(jù)庫(kù)鎖表的原因及解決方法,需要的朋友可以參考下2023-11-11
Oracle數(shù)據(jù)庫(kù)事務(wù)的開啟與結(jié)束詳解
事務(wù)是一個(gè)整體,這些操作要么全部執(zhí)行成功,要么全部不執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)事務(wù)的開啟與結(jié)束的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
ORACLE中鎖住/解鎖統(tǒng)計(jì)信息的操作代碼
從Oracle 10g 開始,Oracle提供了鎖定/解鎖表統(tǒng)計(jì)信息功能,它的目的是阻止數(shù)據(jù)庫(kù)自動(dòng)收集統(tǒng)計(jì)信息,防止可能會(huì)產(chǎn)生/出現(xiàn)的糟糕的計(jì)劃,這篇文章主要介紹了ORACLE中鎖住/解鎖統(tǒng)計(jì)信息的操作代碼,需要的朋友可以參考下2023-09-09
LINUX下Oracle數(shù)據(jù)庫(kù)用戶創(chuàng)建方法詳解
這篇文章主要介紹了LINUX下Oracle數(shù)據(jù)庫(kù)用戶創(chuàng)建方法,結(jié)合實(shí)例形式較為詳細(xì)的分析總結(jié)了Oracle數(shù)據(jù)庫(kù)用戶創(chuàng)建的具體步驟與相關(guān)技巧,需要的朋友可以參考下2015-12-12
Oracle索引(B*tree與Bitmap)的學(xué)習(xí)總結(jié)
本篇文章是對(duì)Oracle索引(B*tree與Bitmap)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

