為何SYSTEM使用者可以將V$SESSION的查詢許可權賦權給其他使用者而SYS使用者卻不可以?

lhrbest發表於2018-05-16

為何SYSTEM使用者可以將V$SESSION的查詢許可權賦權給其他使用者而SYS使用者卻不可以?






有學員提出了一個問題,

現象如下,難道SYSTEMSYS使用者的許可權更大嗎?

SYS@ora11g > grant select on v$session to lhr;

grant select on v$session to lhr

                *

ERROR at line 1:

ORA-02030: can only select from fixed tables/views

 

SYS@ora11g > conn system/lhr

Connected.

SYSTEM@ora11g > grant select on v$session to lhr;

 

Grant succeeded.

如果SYSTEM不能對V$SESSION賦權,那麼請執行以下命令:

GRANT SELECT ON SYS.V_$SESSION TO SYSTEM WITH GRANT OPTION;

這樣SYSTEM就可以對V$SESSION賦權了。

對於該問題可以從以下檢視中獲得答案:

SYS@ora11g > col OWNER format a10

SYS@ora11g > col object_name format a15

SYS@ora11g > SELECT d.owner,d.object_name,d.object_type FROM Dba_Objects d WHERE d.object_name IN  ( 'V$SESSION','V_$SESSION');

 

OWNER      OBJECT_NAME     OBJECT_TYPE

---------- --------------- -------------------

SYS        V_$SESSION      VIEW

PUBLIC     V$SESSION       SYNONYM

 

SYS@ora11g > SELECT d.owner,d.synonym_name,d.table_owner,d.table_name FROM DBA_SYNONYMS D WHERE D.synonym_name IN  ( 'V$SESSION','V_$SESSION');

 

OWNER      SYNONYM_NAME                   TABLE_OWNER                    TABLE_NAME

---------- ------------------------------ ------------------------------ ------------------------------

PUBLIC     V$SESSION                      SYS                            V_$SESSION

 

SYS@ora11g > SELECT D.OWNER,

  2         D.NAME,

  3         D.TYPE,

  4         D.REFERENCED_OWNER,

  5         D.REFERENCED_NAME,

  6         D.REFERENCED_TYPE

  7    FROM DBA_DEPENDENCIES D

  8   WHERE D.NAME IN ('V$SESSION', 'V_$SESSION');

 

OWNER      NAME          TYPE               REFERENCED_OWNER    REFERENCED_NAME   REFERENCED_TYPE

---------- ------------- ------------------ ------------------- ----------------- ------------------

PUBLIC     V$SESSION     SYNONYM            SYS                 V_$SESSION        VIEW

SYS        V_$SESSION    VIEW               SYS                 V$SESSION         VIEW

 

SYS@ora11g > SYS@ora11g > SELECT * FROM V$FIXED_TABLE d WHERE d.NAME IN ( 'V$SESSION','V_$SESSION','GV$SESSION');

 

NAME                            OBJECT_ID TYPE   TABLE_NUM

------------------------------ ---------- ----- ----------

GV$SESSION                     4294951258 VIEW       65537

V$SESSION                      4294950919 VIEW       65537

 

SYS@ora11g >

透過以上查詢可以看到,V$SESSION屬於公共同義詞,它來源於SYS.V_$SESSION私有檢視,而該檢視又來源於系統底層表SYS.V$SESSION,而系統底層表SYS.V$SESSION又來源於系統底層表SYS.GV$SESSION

Oracle選擇訪問物件的順序原則是先SCHEMAPUBLIC。所以,對於SYS使用者而言,他查詢V$SESSION檢視其實是查詢的系統底層表SYS.V$SESSION。對於系統底層表,是不能直接做賦權操作的。所以,SYS使用者在將該檢視賦權給其他使用者的時候就會報錯。而對於SYSTEM使用者而言,他查詢V$SESSION檢視其實是查詢的PUBLIC這個特殊使用者下的公共同義詞,而公共同義詞是可以做賦權操作的。

& 說明:

有關Oracle同義詞更多內容介紹可以參考我的BLOGhttp://blog.itpub.net/26736162/viewspace-2154285/

有關Oracle資料字典更多內容可以參考我的BLOGhttp://blog.itpub.net/26736162/viewspace-2153324/

 













About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:

.............................................................................................................................................

● QQ群號:230161599(滿)、618766405

● 微信群:可加我微信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友646634621,註明新增緣由

● 於 2018-05-01 06:00 ~ 2018-05-31 24:00 在魔都完成

● 最新修改時間:2018-05-01 06:00 ~ 2018-05-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。

小麥苗的微信公眾號小麥苗的DBA寶典QQ群2《DBA筆試面寶典》讀者群小麥苗的微店

   小麥苗的微信公眾號      小麥苗的DBA寶典QQ群2     《DBA筆試面試寶典》讀者群       小麥苗的微店

.............................................................................................................................................

為何SYSTEM使用者可以將V$SESSION的查詢許可權賦權給其他使用者而SYS使用者卻不可以?
DBA筆試面試講解群
《DBA寶典》讀者群 歡迎與我聯絡



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2154543/,如需轉載,請註明出處,否則將追究法律責任。

相關文章