標籤:
一、概念
資料字典是oracle資料庫中最重要的組成部分,它提供了資料庫的一些系統資訊。
動態效能檢視記載了常式啟動後的相關資訊。
二、資料字典
1)、資料字典記錄了資料庫的系統資訊,它是唯讀表和視圖的集合,資料字典的所有者為sys使用者。
2)、使用者只能在資料字典上執行查詢操作(select語句),而其維護和修改是由系統自動完成的。
3)、這裡我們談談資料字典的組成:資料字典包括資料字典基表和資料字典視圖,其中基表格儲存體資料庫的基本資料,普通使用者不能直接存取資料字典的基表。資料字典視圖是基於資料字典基表所建立的視圖,普通使用者可以通過查詢資料字典視圖取得系統資訊。資料字典視圖主要包括user_xxx,all_xxx,dba_xxx三種類型。
user_tables: 用於顯示目前使用者所擁有的所有表,它只返回使用者所對應方案的所有表
比如:select table_name from user_tables;
all_tables: 用於顯示目前使用者可以訪問的所有表,它不僅會返回目前使用者方案的所有表,還會返回目前使用者可以訪問的其它方案的表
比如:select table_name from all_tables;
dba_tables: 它會顯示所有方案擁有的資料庫表。但是查詢這種資料庫字典視圖,要求使用者必須是dba角色或是有select any table 系統許可權。
例如:當用system使用者查詢資料字典視圖dba_tables時,會返回system,sys,scott...方案所對應的資料庫表。
三、使用者名稱,許可權,角色
在建立使用者時,oracle會把使用者的資訊存放到資料字典中,當給使用者授予許可權或是角色時,oracle會將許可權和角色的資訊存放到資料字典。
通過查詢dba_users可以顯示所有資料庫使用者的詳細資料;
通過查詢資料字典視圖dba_sys_privs,可以顯示使用者所具有的系統許可權;
通過查詢資料字典視圖dba_tab_privs,可以顯示使用者具有的對象許可權;
通過查詢資料字典dba_col_privs 可以顯示使用者具有的列許可權;
通過查詢資料庫字典視圖dba_role_privs 可以顯示使用者所具有的角色。
這裡給大家講講角色和許可權的關係。
1)、要查看scott具有的角色,可查詢dba_role_privs;
SQL> select * from dba_role_privs where grantee=‘SCOTT‘;
2)、查詢orale中所有的系統許可權,一般是dba
select * from system_privilege_map order by name;
3)、查詢oracle中所有對象許可權,一般是dba
select distinct privilege from dba_tab_privs;
4)、查詢oracle 中所有的角色,一般是dba
select * from dba_roles;
5)、查詢資料庫的資料表空間
select tablespace_name from dba_tablespaces;
問題1:如何查詢一個角色包括的許可權?
a.一個角色包含的系統許可權
select * from dba_sys_privs where grantee=‘角色名稱‘
另外也可以這樣查看:
select * from role_sys_privs where role=‘角色名稱‘
b.一個角色包含的對象許可權
select * from dba_tab_privs where grantee=‘角色名稱‘
問題2:oracle究竟有多少種角色?
SQL> select * from dba_roles;
問題3:如何查看某個使用者,具有什麼樣的角色?
select * from dba_role_privs where grantee=‘使用者名稱‘
顯示目前使用者可以訪問的所有資料字典視圖。
select * from dict where comments like ‘%grant%‘;
顯示當前資料庫的全稱
select * from global_name;
其它說明
資料字典記錄有oracle資料庫的所有系統資訊。通過查詢資料字典可以取得以下系統資訊:比如
1.對象定義情況
2.對象佔用空間大小
3.列資訊
4.約束資訊
...
但是因為這些個資訊,可以通過pl/sql developer工具查詢得到,所以這裡我就飄過。
四、動態效能檢視
動態效能檢視用於記錄當前常式的活動資訊,當啟動oracle server時,系統會建立動態效能檢視;當停止oracle server時,系統會刪除動態效能檢視。oracle的所有動態效能檢視都是以v_$開始的,並且oracle為每個動態效能檢視都提供了相應的同義字,並且其同義字是以V$開始的,例如v_$datafile的同義字為v$datafile;動態效能檢視的所有者為sys,一般情況下,由dba或是特權使用者來查詢動態效能檢視。
因為這個在實際中用的較少,所以飛過
十三、oracle 資料字典和動態效能檢視