本次實驗測試,oracle數據庫視圖中v$,v_$,gv$之間的關系
總結:
v_$是動態性能視圖,通過sql查詢數據庫基表返回記錄。例如,v_$database對象是視圖類型,可對其它用戶授權訪問;
v$database則是為了簡化查詢,是v_$database的同義詞,oracle同義詞無法作為對象,進行賦權語句執行grant;
gv_則是集群,多了一個Inst_id區分實例
1.對象類型
1 SYS@ceshi>select object_name,object_type,status from user_objects where object_name in('V$SESSION', 2 11:02:55 2 'V_$SESSION','GV$SESSION'); 3 4 OBJECT_NAME OBJECT_TYPE STATUS 5 ------------------------------ ------------------- ------- 6 V_$SESSION VIEW VALID 7 8 SYS@ceshi>select synonym_name,table_name from dba_synonyms where synonym_name in('V$SESSION','GV$SESSION'); 9 10 SYNONYM_NAME TABLE_NAME 11 ------------------------------ ------------------------------ 12 GV$SESSION GV_$SESSION 13 V$SESSION V_$SESSION
2.授權報錯
1 11:08:46 SYS@ceshi>grant select on V_$SESSION to scott; 2 3 Grant succeeded. 4 5 Elapsed: 00:00:00.13 6 11:09:19 SYS@ceshi>grant select on V$SESSION to scott; 7 grant select on V$SESSION to scott 8 * 9 ERROR at line 1: 10 ORA-02030: can only select from fixed tables/views
授權,需要授予對象權限,同義詞無法作為授權對象
3.GET_DDL
提取GV$SESSION基表定義,如下鏈接可以幫助查詢,普通get_ddl查詢的定義是錯誤的
http://t.askmaclean.com/thread-392-1-1.html
