oracle 11g 學習筆記 10_30(2)_資料字典和動態效能檢視

來源:互聯網
上載者:User
資料字典和動態效能檢視

資料字典是oracle資料庫中最重要的組成部分,它提供了資料庫的一些系統資訊
動態效能檢視記載了常式啟動後的相關資訊。
一、資料字典

資料字典記錄了資料庫的系統資訊,它是唯讀表和視圖的集合,資料字典的所有者為sys使用者。
使用者只能在資料字典上執行查詢操作(select語句),而其維護和修改是由系統自動完成的。

資料字典的組成:資料字典包括資料字典基表和資料字典視圖,其中基表格儲存體資料庫的基本資料(可以理解為待用資料),普通使用者不能直接存取資料字典的基表。資料字典視圖是基於資料字典基表所建立的視圖,普通使用者可以通過查詢資料字典視圖取得系統資訊,資料字典視圖主要包括user.xxx,
all.xxx, dba,xxx三種類型。

*user_tables

用於顯示目前使用者的所擁有的所有表,它只返回使用者所對應方案的所有表。

select table_name from user_tables;

*all_tables
用於顯示目前使用者可以訪問到的所有表,它不僅會返回目前使用者方案的所有表,還會返回目前使用者可以訪問到的其它方案的表。
select table_name from all_tables;
*使用者名稱,許可權,角色
在建立使用者時,oracle會把使用者的資訊存放到資料字典中,當給使用者授予許可權或是角色時,oracle會將許可權和角色的資訊存放到資料字典,通過查詢dba.users可以顯示所有資料庫使用者的詳細資料;
通過查詢資料字典視圖dba_sys_privs,可以顯示使用者所具有的系統許可權
通過查詢資料字典視圖dba_tab_privs可以顯示使用者具有的對象許可權
通過查詢資料字典dba_col_privs可以顯示使用者具有的列許可權
通過查詢資料字典視圖dba_role_privs可以顯示使用者所具有的角色

查詢看scott具有的角色,可以查詢dba_role_privs;
//1、先查看一下dba_role_privs表結構
desc dba_role_privs;
Name         Type         Nullable Default Comments                                          
------------ ------------ -------- ------- ------------------------------------------------- 
GRANTEE      VARCHAR2(30) Y                Grantee Name, User or Role receiving the grant    
GRANTED_ROLE VARCHAR2(30)                  Granted role name                                 
ADMIN_OPTION VARCHAR2(3)  Y                Grant was with the ADMIN option                   
DEFAULT_ROLE VARCHAR2(3)  Y                Role is designated as a DEFAULT ROLE for the user 
//2、

select * from dba_role_privs where grantee='SCOTT';

GRANTEE                        GRANTED_ROLE                   ADMIN_OPTION DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
SCOTT                          RESOURCE                       NO           YES
SCOTT                          CONNECT                        NO           YES

二、角色和許可權

一個角色裡擁有很多許可權,其實角色就是由許可權構成的。角色可以分配給使用者,那麼該使用者就擁有了該角色的許可權。一個使用者可能有多個角色。
1、如何查詢一個角色包含的許可權?
//這個問題包含了兩小問題:
a、一個角色包含的系統許可權;

select * from dba_role_privs where grantee='DBA' //DBA是使用者名稱

或者是:

select * from dba_sys_privs where role='DBA'

b、一個角色包含的對象許可權

select * from dba_tab_privs where grantee='DBA';

當然,無論是查看某個角色的系統許可權和對象許可權都可以通過pl/sql developer 這個工具直接查看。

2、oracle究竟有多少種角色?

select * from dba_roles;

3、如何查看某個使用者具有什麼角色?

select * from dba_role_privs where grantee='使用者名稱';
//查詢oracle中所有的系統許可權,一般是dbaselect * from system_privilege_map order by name;//查詢oracle中所有的角色,一般是dbaselect * from dba_roles;//查詢oracle中所有對象許可權,一般是dba。select distinct privilege from dba_tab_privs;//查詢資料庫的資料表空間select tablespace_name from dba_tablespaces;

提示:查詢這些資訊最好是用system使用者登入,普通使用者查詢這些可能不全。

.顯示目前使用者可以訪問的所有資料字典視圖

select * from dict where comments like '%grant%';

.顯示當前資料庫的全稱

select * from global_name;

*其它說明
資料字典記錄有oracle資料庫的所有系統資訊,通過查詢資料字典可以取得以下系統資訊:
對象定義情況
對象佔用空間大小
列資訊
約束資訊
...
這些資訊都可以在pl/sql developerg工具查到。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.