什麼是Oracle的資料字典?
資料字典是oracle存放有關資料庫資訊的地方,幾乎所有的系統資訊和物件資訊都可在資料字典中進行查詢。資料字典是oracle資料庫系統的資訊核心,它是一組提供有關資料庫資訊的表和檢視的集合,這些表和檢視是隻讀的。它是隨著資料庫的建立而建立的,當資料庫執行特定動作時資料字典也會自動更新。資料一覽與資料字典來記錄、校驗和管理正在進行的操作。
Oracle中,sys使用者是資料字典的擁有者,資料字典保證在所有資料庫的系統表空間system內,任何使用者都無權更改sys模式下的模式物件或資料字典中的行。也就是說資料字典只能查詢,不能手動進行修改。
一、資料字典用途
Oracle透過存取資料字典從而比較方便地獲取有關使用者某事物件和儲存結構等資訊。當系統執行了DDL語句後,oracle會及時修改資料字典。任何使用者只能以讀的形式使用資料字典獲取資料庫資訊。
二、資料字典儲存的資訊
- 資料使用者的名稱
- 為使用者授予的許可權和角色
- 模式物件的名。
- 完整性約束的具體資訊;
- 每個欄位的預設值;
- 資料庫空間的使用情況;
- 儲存審計的資訊
- 物件與使用者的嚴格管理(適用於高度機密管理);
- 其他一般資料庫資訊
三、四種字首的資料字典檢視
- user_ :任何使用者都可以讀取的檢視,每個使用者讀取的都不一樣,它只提供當前使用者某事下的物件資訊。
如查詢當前模式下的所有物件:
select object_name, object_type
from user_objects;
- all_ :所有使用者都可讀取的使用者檢視,它提供與使用者有關的物件資訊。
如查詢當前使用者可訪問的所有物件:
select owner, object_name, object_type
from all_objects;
- dba_:提供了只有資料庫管理員才可讀取的檢視,包括所有使用者檢視中的物件資訊。
如:
select owner, object_name, object_type
from sys.dba_objects;
- v$:動態效能檢視
動態效能檢視用於記錄當前例程的活動資訊,當啟動oracle server時,系統會建立動態效能檢視;當停止oracle server時,系統會刪除動態效能檢視,oracle的所有動態效能檢視都是以v_KaTeX parse error: Expected 'EOF', got '開' at position 1: 開̲始的,並且oracle為每個動…開始的,例如_KaTeX parse error: Expected 'EOF', got '的' at position 9: datefile的̲同義詞為vdatefile;動態效能檢視的所有者為sys,一般情況下,由DBA或是特權使用者來查詢動態效能檢視。
四、查詢資料字典示例
- 查詢使用者相關的資料字典
查詢使用者
select username
from dba_users; -- 只有管理員許可權的使用者才能查詢
select username
from all_users; -- 當前或任何使用者都可使用
-- 檢視當前使用者的預設表空間
select username, default_tablespace
from user_users;
--當前使用者角色
select *
from user_role_privs;
-- 當前使用者的系統許可權和表級許可權
select *
from user_sys_privs;
select *
from user_tab_privs;
- 查詢表空間相關的資料字典(擁有DBA許可權的使用者才能查詢)
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'; -- 表空間對於的資料檔案
select *
from dba_segments
where tablespace_name=
'USERS';
--查詢使用者模式物件所使用過的正在使用空間大小
select name, type, source_size, code_size
from user_object_size;
- 查詢資料庫物件(擁有DBA許可權的使用者才能查詢)
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'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2707891/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是字典?Python字典是可變的嗎?Python
- python字典是什麼Python
- python中的字典是什麼Python
- 資料庫索引是什麼?新華字典來幫你資料庫索引
- 談談術語表、資料字典、資料目錄分別是什麼
- oracle資料庫資料字典應用Oracle資料庫
- 什麼是大資料?大資料開發是做什麼的?大資料
- 什麼是資料運營?資料運營是做什麼的?
- Oracle相關資料字典檢視Oracle
- 什麼是資料標註,它的用途是什麼?
- 到底什麼是大資料?新手學大資料的路徑是什麼?大資料
- 什麼是大資料?大資料能做什麼?大資料
- 什麼是資料流?
- 什麼是資料蔓延?
- 什麼是大資料?大資料
- 字典和json的區別是什麼?Python學習JSONPython
- 探索資料字典,提高自學習Oracle能力Oracle
- 大資料是什麼?大資料的趨勢?大資料
- 什麼是資料分析中的“資料”? - Cassie Kozyrkov
- 資料恢復的原理是什麼資料恢復
- 什麼是真正的自治資料庫?資料庫
- 什麼是資料和資訊
- 什麼是資料質量?
- 什麼是資料轉換?
- 什麼是資料準備?
- Chronicles 是什麼資料庫資料庫
- 什麼是資料倉儲
- 什麼是皇帝資料庫?資料庫
- 什麼是資料倉儲?
- 什麼是資料增強?
- 什麼是資料結構資料結構
- 什麼是大資料安全?大資料
- 資料治理:什麼是MDM?
- 大資料分析是什麼大資料
- 什麼是Cassandra資料庫資料庫
- 資料卷是什麼?資料卷有什麼優勢嗎?
- Oracle OCP(27):使用資料字典檢視管理物件Oracle物件
- 什麼是大資料?Python和大資料有什麼聯絡?大資料Python