十3、oracle 數據字典和動態性能視圖

1、概念
數據字典是oracle數據庫中最重要的組成部分,它提供了數據庫的一些系統信息。
動態性能視圖記載了例程啓動後的相關信息。sql

           

2、數據字典
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

            

3、用戶名,權限,角色
在創建用戶時,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='角色名'spa

       

問題2:oracle究竟有多少種角色?
SQL> select * from dba_roles;orm

             

問題3:如何查看某個用戶,具備什麼樣的角色?
select * from dba_role_privs where grantee='用戶名'server

         

顯示當前用戶能夠訪問的全部數據字典視圖。
select * from dict where comments like '%grant%';對象

         

顯示當前數據庫的全稱
select * from global_name;it

            

其它說明
數據字典記錄有oracle數據庫的全部系統信息。經過查詢數據字典能夠取得如下系統信息:好比
1.對象定義狀況
2.對象佔用空間大小
3.列信息
4.約束信息
...
可是由於這些個信息,能夠經過pl/sql developer工具查詢獲得,因此這裏我就飄過。

              

4、動態性能視圖動態性能視圖用於記錄當前例程的活動信息,當啓動oracle server時,系統會創建動態性能視圖;當中止oracle server時,系統會刪除動態性能視圖。oracle的全部動態性能視圖都是以v_$開始的,而且oracle爲每一個動態性能視圖都提供了相應的同義詞,而且其同義詞是以V$開始的,例如v_$datafile的同義詞爲v$datafile;動態性能視圖的全部者爲sys,通常狀況下,由dba或是特權用戶來查詢動態性能視圖。由於這個在實際中用的較少,因此飛過

相關文章
相關標籤/搜索