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