數(shù)據(jù)字典乍一看以為是數(shù)據(jù)的基本組成單位,但事實(shí)上Oracle數(shù)據(jù)庫中最要的組成部分,它提供了數(shù)據(jù)庫的一些系統(tǒng)信息,在形式上表現(xiàn)為只讀表和視圖的集合,數(shù)據(jù)字典的所有者為sys用戶。用戶只能在數(shù)據(jù)字典上執(zhí)行查詢操作,而其維護(hù)和修改時(shí)由系統(tǒng)自動(dòng)完成,中培偉業(yè)為你深度剖析數(shù)據(jù)字典.
數(shù)據(jù)字典的組成:
1、數(shù)據(jù)字典基表。用來存儲(chǔ)數(shù)據(jù)庫的基本信息,普通用戶不能直接訪問數(shù)據(jù)字典的基表。
2、數(shù)據(jù)字典視圖。數(shù)據(jù)字典視圖時(shí)基于數(shù)據(jù)字典基表所建立的視圖,普通用戶可以通過查詢數(shù)據(jù)字典視圖取得系統(tǒng)信息。數(shù)據(jù)字典主要包括user_xxx,all_xxx,dba_xxx三種類型。
在數(shù)據(jù)字典層面,分為用戶名,權(quán)限,角色在建立用戶時(shí),Oracle會(huì)把用戶的信息存放到數(shù)據(jù)字典中,當(dāng)給用戶授予權(quán)限或是角色時(shí),Oracle會(huì)將權(quán)限和角色的信息存放到數(shù)據(jù)字典。通過查詢dba_users可以顯示所有數(shù)據(jù)庫用戶的詳細(xì)信息。通過查詢dba_sys_privs可以顯示用戶所具有的系統(tǒng)權(quán)限。通過查詢dba_tab_privs可以顯示用戶所具有的對象權(quán)限。通過查詢dba_col_privs可以顯示用戶具有的列權(quán)限。通過查詢dba_role_privs可以顯示用戶所具有的角色。
查詢Oracle中所有的系統(tǒng)權(quán)限,一般是dbasql>select * from system_privilege_map order by name;查詢Oracle中所有的角色,一般是dbasql>select * from dba_roles;查詢Oracle中所有對象權(quán)限,一般是dbasql>select distinct privilege from dba_tab_privs;查詢數(shù)據(jù)庫的表空間sql>select tablespace_name from dba_tablespaces;查詢一個(gè)角色,包括哪些權(quán)限
a、一個(gè)角色包含的系統(tǒng)權(quán)限
方法一:sql>select * from dba_sys_privs where grantee='CONNECT';
方法二:sql>select * from role_sys_privs where role='CONNECT';
b、一個(gè)角色包含的對象權(quán)限
sql>select * from dba_tab_privs wheregrantee='CONNECT';
6)如何查詢某個(gè)用戶,具有什么樣的角色
sql>select * from dba_role_privs where grantee='SCOTT'
7)顯示當(dāng)前用戶可以訪問的所有數(shù)據(jù)字典視圖
sql>select * from dict where comments like '%grant%';
8)顯示當(dāng)前數(shù)據(jù)庫的全稱
sql>select * from global_name;
來自中培偉業(yè)的專業(yè)描述是否已經(jīng)讓你的思路清晰了一點(diǎn)呢,我們相信,精心總結(jié)的專業(yè)知識(shí)一定能讓你玩轉(zhuǎn)Oracle數(shù)據(jù)庫管理。