數(shù)據(jù)字典是oracle存放有關(guān)數(shù)據(jù)庫信息的地方,幾乎所有的系統(tǒng)信息和對(duì)象信息都可在數(shù)據(jù)字典中進(jìn)行查詢。數(shù)據(jù)字典是oracle數(shù)據(jù)庫系統(tǒng)的信息核心,它是一組提供有關(guān)數(shù)據(jù)庫信息的表和視圖的集合,這些表和視圖是只讀的。它是隨著數(shù)據(jù)庫的建立而建立的,當(dāng)數(shù)據(jù)庫執(zhí)行特定動(dòng)作時(shí)數(shù)據(jù)字典也會(huì)自動(dòng)更新。數(shù)據(jù)一覽與數(shù)據(jù)字典來記錄、校驗(yàn)和管理正在進(jìn)行的操作。
Oracle中,sys用戶是數(shù)據(jù)字典的擁有者,數(shù)據(jù)字典保證在所有數(shù)據(jù)庫的系統(tǒng)表空間system內(nèi),任何用戶都無權(quán)更改sys模式下的模式對(duì)象或數(shù)據(jù)字典中的行。也就是說數(shù)據(jù)字典只能查詢,不能手動(dòng)進(jìn)行修改。
Oracle通過存取數(shù)據(jù)字典從而比較方便地獲取有關(guān)用戶某事對(duì)象和存儲(chǔ)結(jié)構(gòu)等信息。當(dāng)系統(tǒng)執(zhí)行了DDL語句后,oracle會(huì)及時(shí)修改數(shù)據(jù)字典。任何用戶只能以讀的形式使用數(shù)據(jù)字典獲取數(shù)據(jù)庫信息。
數(shù)據(jù)用戶的名稱
為用戶授予的權(quán)限和角色
模式對(duì)象的名。
完整性約束的具體信息;
每個(gè)字段的默認(rèn)值;
數(shù)據(jù)庫空間的使用情況;
存儲(chǔ)審計(jì)的信息
對(duì)象與用戶的嚴(yán)格管理(適用于高度機(jī)密管理);
其他一般數(shù)據(jù)庫信息
user_ :任何用戶都可以讀取的視圖,每個(gè)用戶讀取的都不一樣,它只提供當(dāng)前用戶某事下的對(duì)象信息。
如查詢當(dāng)前模式下的所有對(duì)象: select object_name, object_type from user_objects;
all_ :所有用戶都可讀取的用戶視圖,它提供與用戶有關(guān)的對(duì)象信息。
如查詢當(dāng)前用戶可訪問的所有對(duì)象: select owner, object_name, object_type from all_objects;
dba_:提供了只有數(shù)據(jù)庫管理員才可讀取的視圖,包括所有用戶視圖中的對(duì)象信息。
如: select owner, object_name, object_type from sys.dba_objects;
v$:動(dòng)態(tài)性能視圖
動(dòng)態(tài)性能視圖用于記錄當(dāng)前例程的活動(dòng)信息,當(dāng)啟動(dòng)oracle server時(shí),系統(tǒng)會(huì)建立動(dòng)態(tài)性能視圖;當(dāng)停止oracle server時(shí),系統(tǒng)會(huì)刪除動(dòng)態(tài)性能視圖,oracle的所有動(dòng)態(tài)性能視圖都是以v$開始的,并且oracle為每個(gè)動(dòng)態(tài)性能視圖都提供例了相應(yīng)的同義詞,并且同義詞是以v$開始的,例如$datefile的同義詞為v$datefile;動(dòng)態(tài)性能視圖的所有者為sys,一般情況下,由DBA或是特權(quán)用戶來查詢動(dòng)態(tài)性能視圖。
查詢用戶相關(guān)的數(shù)據(jù)字典
查詢用戶 select username from dba_users; -- 只有管理員權(quán)限的用戶才能查詢 select username from all_users; -- 當(dāng)前或任何用戶都可使用 -- 查看當(dāng)前用戶的默認(rèn)表空間 select username, default_tablespace from user_users; --當(dāng)前用戶角色 select * from user_role_privs; -- 當(dāng)前用戶的系統(tǒng)權(quán)限和表級(jí)權(quán)限 select * from user_sys_privs; select * from user_tab_privs;
查詢表空間相關(guān)的數(shù)據(jù)字典(擁有DBA權(quán)限的用戶才能查詢)
select * from dba_data_files; select * from dba_tablespaces; --表空間 select tablespace_name, sum(bytes), sum(blocks) from dba_free_space group by tablespace_name; --空閑表空間 select * from dba_data_files where tablespace_name='USERS'; -- 表空間對(duì)于的數(shù)據(jù)文件 select * from dba_segments where tablespace_name='USERS'; --查詢用戶模式對(duì)象所使用過的正在使用空間大小 select name, type, source_size, code_size from user_object_size;
查詢數(shù)據(jù)庫對(duì)象(擁有DBA權(quán)限的用戶才能查詢)
select * from dba_objects select * from dba_objects where object_type = upper('package body'); select * from dba_objects where OBJECT_TYPE='TABLE' and OWNER='SCOTT'