日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

十三、oracle 数据字典和动态性能视图

發(fā)布時間:2023/12/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十三、oracle 数据字典和动态性能视图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、概念
數(shù)據(jù)字典是oracle數(shù)據(jù)庫中最重要的組成部分,它提供了數(shù)據(jù)庫的一些系統(tǒng)信息。
動態(tài)性能視圖記載了例程啟動后的相關信息。

???????????

二、數(shù)據(jù)字典
1)、數(shù)據(jù)字典記錄了數(shù)據(jù)庫的系統(tǒng)信息,它是只讀表和視圖的集合,數(shù)據(jù)字典的所有者為sys用戶。
2)、用戶只能在數(shù)據(jù)字典上執(zhí)行查詢操作(select語句),而其維護和修改是由系統(tǒng)自動完成的。
3)、這里我們談談數(shù)據(jù)字典的組成:數(shù)據(jù)字典包括數(shù)據(jù)字典基表和數(shù)據(jù)字典視圖,其中基表存儲數(shù)據(jù)庫的基本信息,普通用戶不能直接訪問數(shù)據(jù)字典的基表。數(shù)據(jù)字典視圖是基于數(shù)據(jù)字典基表所建立的視圖,普通用戶可以通過查詢數(shù)據(jù)字典視圖取得系統(tǒng)信息。數(shù)據(jù)字典視圖主要包括user_xxx,all_xxx,dba_xxx三種類型。
???????????????
user_tables: 用于顯示當前用戶所擁有的所有表,它只返回用戶所對應方案的所有表
比如:select table_name from user_tables;
???????????
all_tables: 用于顯示當前用戶可以訪問的所有表,它不僅會返回當前用戶方案的所有表,還會返回當前用戶可以訪問的其它方案的表
比如:select table_name from all_tables;

???????????????

dba_tables: 它會顯示所有方案擁有的數(shù)據(jù)庫表。但是查詢這種數(shù)據(jù)庫字典視圖,要求用戶必須是dba角色或是有select any table 系統(tǒng)權限。
例如:當用system用戶查詢數(shù)據(jù)字典視圖dba_tables時,會返回system,sys,scott...方案所對應的數(shù)據(jù)庫表。

????????????

三、用戶名,權限,角色
在建立用戶時,oracle會把用戶的信息存放到數(shù)據(jù)字典中,當給用戶授予權限或是角色時,oracle會將權限和角色的信息存放到數(shù)據(jù)字典。
通過查詢dba_users可以顯示所有數(shù)據(jù)庫用戶的詳細信息;
通過查詢數(shù)據(jù)字典視圖dba_sys_privs,可以顯示用戶所具有的系統(tǒng)權限;
通過查詢數(shù)據(jù)字典視圖dba_tab_privs,可以顯示用戶具有的對象權限;
通過查詢數(shù)據(jù)字典dba_col_privs 可以顯示用戶具有的列權限;
通過查詢數(shù)據(jù)庫字典視圖dba_role_privs 可以顯示用戶所具有的角色。

??????????????

這里給大家講講角色和權限的關系。
1)、要查看scott具有的角色,可查詢dba_role_privs;
SQL> select * from dba_role_privs where grantee='SCOTT';
2)、查詢orale中所有的系統(tǒng)權限,一般是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)、查詢數(shù)據(jù)庫的表空間
select tablespace_name from dba_tablespaces;

??????????????

問題1:如何查詢一個角色包括的權限?
a.一個角色包含的系統(tǒng)權限
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='用戶名'

?????????

顯示當前用戶可以訪問的所有數(shù)據(jù)字典視圖。
select * from dict where comments like '%grant%';

?????????

顯示當前數(shù)據(jù)庫的全稱
select * from global_name;

????????????

其它說明
數(shù)據(jù)字典記錄有oracle數(shù)據(jù)庫的所有系統(tǒng)信息。通過查詢數(shù)據(jù)字典可以取得以下系統(tǒng)信息:比如
1.對象定義情況
2.對象占用空間大小
3.列信息
4.約束信息
...
但是因為這些個信息,可以通過pl/sql developer工具查詢得到,所以這里我就飄過。

??????????????

四、動態(tài)性能視圖
動態(tài)性能視圖用于記錄當前例程的活動信息,當啟動oracle server時,系統(tǒng)會建立動態(tài)性能視圖;當停止oracle server時,系統(tǒng)會刪除動態(tài)性能視圖。oracle的所有動態(tài)性能視圖都是以v_$開始的,并且oracle為每個動態(tài)性能視圖都提供了相應的同義詞,并且其同義詞是以V$開始的,例如v_$datafile的同義詞為v$datafile;動態(tài)性能視圖的所有者為sys,一般情況下,由dba或是特權用戶來查詢動態(tài)性能視圖。
因為這個在實際中用的較少,所以飛過

轉載于:https://www.cnblogs.com/linjiqin/archive/2012/02/14/2351169.html

總結

以上是生活随笔為你收集整理的十三、oracle 数据字典和动态性能视图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。