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

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

???????????

二、數據字典
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會把用戶的信息存放到數據字典中,當給用戶授予權限或是角色時,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='角色名'

???????

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

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

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

?????????

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

?????????

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

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

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

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

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379957.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379957.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python網絡編程---TCP服務器

0x01 環境 python2 pycharm 0x02 程序 客戶端程序: # -*- coding:UTF-8 -*- import sockettarget_hostwww.baidu.com target_port80target_hostlocalhost target_port3345 dataABCDEF# 創建一個socket對象 client socket.socket(socket.AF_INET,socket.SOCK_STRE…

C# 獲取磁盤容量

/// 獲取指定驅動器的空間總大小(單位為B) /// </summary> /// <param name"str_HardDiskName">只需輸入代表驅動器的字母即可 </param> /// <returns> </returns> public static long GetHardDi…

Java——獲取當前線程的對象(currentThread())(兩種方式)

package com.yy.threadmethod;public class Demo2_CurrentThread { /*** public static Thread currentThread()返回對當前正在執行的線程對象的引用。 * 返回&#xff1a;當前執行的線程。返回的是一個Thread* 該方法主要是為了協助 實現通過Runnable接口來對線程進行設置…

HDU2501_多米諾骨牌

題目大意&#xff1a; 有一個大小是 2 x n 的網格&#xff0c;現在需要用2種規格的骨牌鋪滿&#xff0c;骨牌規格分別是 2 x 1 和 2 x 2&#xff0c;請計算一共有多少種鋪設的方法。 解題思路&#xff1a; 找出遞推公式&#xff1a; f[i] f[i-1] f[i-2] * 2; 代碼&#xff1a…

java jar包示例_Java包getSpecificationVendor()方法和示例

java jar包示例包類的getSpecificationVendor()方法 (Package Class getSpecificationVendor() method) getSpecificationVendor() method is available in java.lang package. getSpecificationVendor()方法在java.lang包中可用。 getSpecificationVendor() method is used to…

sys.argv和getopt

0x01 sys.argv sys.argv用來讀取命令行參數&#xff0c;保存程序的文件名和命令參數&#xff0c;讀入的參數以列表保存 import sysprint sys.argv print type(sys.argv)可以看到&#xff0c;sys.argv把空格當成分隔符&#xff0c;空格兩邊的值當做sys.argv的一個元素&#xf…

[導入]《大話設計模式》重印公告

摘要: 《大話設計模式》12月中旬上市&#xff0c;至2008年1月底僅僅一個多月&#xff0c;5000冊即銷售一空&#xff0c;清華大學出版社已經開始重印&#xff0c;也就是說很快可以在二月底或三月初看到新印刷修正過大部分錯誤的《大話設計模式》。 閱讀全文[新聞]《人民日報市場…

Java——線程的四種不同形式

一&#xff0c;休眠線程 public static void sleep(long millis) throws InterruptedException 在指定的毫秒數內讓當前正在執行的線程休眠&#xff08;暫停執行&#xff09;&#xff0c;此操作受到系統計時器和調度程序精度和準確性的影響。該線程不丟失任何監視器的所屬權。…

hdu1053 Entropy hdu2527 Safe Or Unsafe

裸裸的哈弗曼編碼&#xff0c;求出哈弗曼編碼的路徑長度&#xff0c;注意整個字符串為一種字符的情況 View Code #include<iostream>#include<queue>#include<algorithm>#include<vector>using namespace std;struct node{int u,w; node(int a0,in…

Java ListResourceBundle getContents()方法與示例

ListResourceBundle類的getContents()方法 (ListResourceBundle Class getContents() method) getContents() method is available in java.util package. getContents()方法在java.util包中可用。 getContents() method is used to get the contents into the form of an Obje…

DOM元素的所有子元素 .elements

.elements屬性用來獲取某個DOM元素的所有子元素&#xff0c;是個很有用的屬性&#xff0c;可用于用className來獲取指定元素等用途。 轉載于:https://www.cnblogs.com/cly84920/archive/2008/08/06/4427136.html

sys.stdin.read和raw_input函數

sys.stdin.read函數 例子&#xff1a; import sysreadsys.stdin.read() for i in range(len(read)):print i,read[i],-1運行&#xff0c;當執行到readsys.stdin.read()會阻塞&#xff0c;等待我們輸入 我們輸入&#xff1a; h e當輸入&#xff0c;ctrlD結束輸入&#xff0c…

Java ObjectOutputStream writeFields()方法與示例

ObjectOutputStream類writeFields()方法 (ObjectOutputStream Class writeFields() method) writeFields() method is available in java.io package. 在java.io包中提供了writeFields()方法 。 writeFields() method is used to write the buffered fields to the ObjectOutpu…

利用帶關聯子查詢Update語句更新數據

Update是T-sql中再簡單不過的語句了&#xff0c;update table set columnexpression [where condition]&#xff0c;我們都會用到。但update的用法不僅于此&#xff0c;真正在開發的時候&#xff0c;靈活恰當地使用update可以達到事半功倍的效果。 假定有表Table1&#xff08;…

SQL Server 2000數據庫移植到SQL Server 2008R2數據庫服務器中碰到的”3145錯誤”及解決辦法...

辛苦忙碌了一個星期終于安裝配置好了TFS服務器&#xff0c;給每個團隊成員分配了賬戶和郵箱。不過&#xff0c;老機器中的部分數據需要備份到新機器中&#xff0c;其中在移植一個使用DVBBS架設的論壇的時候&#xff0c;出了點問題&#xff0c;記錄如下&#xff0c;以備查找&…

web安全----XSS漏洞之基本原理

0x01 概述 XSS為跨站腳本攻擊&#xff0c;XSS攻擊針對的是用戶層面的攻擊&#xff01;類型有反射型XSS、存儲型XSS、DOM型XSS&#xff0c;這里的DOM可以理解為頁面&#xff0c;或者是所有的標簽、內容之和 0x02 反射型XSS 反射型XSS攻擊流程為&#xff1a; 即&#xff1a; …

面向對象(匿名內部類與有名字內部類的比較)

A:匿名內部類 就是內部類的簡化寫法B:前提 這里的類可以是具體類也可以是抽象類C&#xff1a;格式 new 類名或者接口(){ //表示繼承這個類或實現這個接口重寫方法}D&#xff1a;本質是什么呢&#xff1f; 是一個繼承了該類或者實現了該接口的子類匿名對象E&#xff1a;案…

如何在Python中針對一個值檢查多個變量?

Given multiple variables and they are assigned some values, we have to test a value with these variables. 給定多個變量并為其分配了一些值&#xff0c;我們必須使用這些變量測試一個值。 Let, there are three variables a, b and c and we have to check whether one…

品析《桃花庵歌》

桃花庵歌 【明】唐寅&#xff08;YIN) 桃花塢里桃花庵&#xff0c;桃花庵下桃花仙&#xff1b; 桃花仙人種桃樹&#xff0c;又摘桃花賣酒錢。 酒醒只在花前坐&#xff0c;酒醉還來花下眠&#xff1b; 半醒半醉日復日&#xff0c;花落花開年復年。 但愿老死花酒間&#xf…

面向對象(匿名內部類重寫多個方法調用)

①匿名內部類只針對重寫一個方法的時候使用; ②若有多個方法&#xff0c;通過匿名內部類進行調用的時候&#xff0c;需要一個一個進行調用,比較麻煩&#xff0c;所以不建議使用。 ③匿名內部類是無法向下轉型的&#xff0c;向下轉型需要子類的類名&#xff0c;這里面沒有子類…