為何SYSTEM使用者可以將V$SESSION的查詢許可權賦權給其他使用者而SYS使用者卻不可以?
為何SYSTEM使用者可以將V$SESSION的查詢許可權賦權給其他使用者而SYS使用者卻不可以?
有學員提出了一個問題,
現象如下,難道SYSTEM比SYS使用者的許可權更大嗎?
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選擇訪問物件的順序原則是先SCHEMA後PUBLIC。所以,對於SYS使用者而言,他查詢V$SESSION檢視其實是查詢的系統底層表SYS.V$SESSION。對於系統底層表,是不能直接做賦權操作的。所以,SYS使用者在將該檢視賦權給其他使用者的時候就會報錯。而對於SYSTEM使用者而言,他查詢V$SESSION檢視其實是查詢的PUBLIC這個特殊使用者下的公共同義詞,而公共同義詞是可以做賦權操作的。
& 說明:
有關Oracle同義詞的更多內容介紹可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-2154285/
有關Oracle資料字典的更多內容可以參考我的BLOG:http://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寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826
.............................................................................................................................................
● 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
● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解
● 版權所有,歡迎分享本文,轉載請保留出處
.............................................................................................................................................
● 小麥苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail
● 小麥苗出版的資料庫類叢書:http://blog.itpub.net/26736162/viewspace-2142121/
● 小麥苗OCP、OCM、高可用網路班:http://blog.itpub.net/26736162/viewspace-2148098/
.............................................................................................................................................
使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。
小麥苗的微信公眾號 小麥苗的DBA寶典QQ群2 《DBA筆試面試寶典》讀者群 小麥苗的微店
.............................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2154543/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySql查詢使用者許可權MySql
- UserService 查詢使用者查詢許可權 isGlobalQuery分析
- UserService 查詢使用者沒許可權的索引,增加臨時許可權queryIndicesNoPermission分析索引
- UserService 修改使用者查詢許可權 changeGlobalQuery分析
- UserService 刪除使用者查詢許可權 deleteUserPermission分析delete
- mysql 給了使用者所有許可權ALL PRIVILEGES,但是該使用者沒有grant許可權MySql
- MongoDB建立只讀使用者並授權指定集合的查詢許可權MongoDB
- MySQL 給使用者新增 ALTER VIEW 的許可權MySqlView
- linux使用者許可權Linux
- UserService 查詢使用者有許可權的關聯索引 queryIndexPatternByUserName分析索引Index
- Ubuntu-給新增使用者新增root許可權Ubuntu
- 給非 root 使用者新增 docker 使用許可權Docker
- 使用者和組的許可權
- Linux使用者與許可權Linux
- mysql使用者許可權管理MySql
- NAS使用者許可權的設定
- Linux使用者、組、許可權管理Linux
- MySQL使用者及許可權管理MySql
- Oracle使用者角色許可權管理Oracle
- linux5-使用者許可權Linux
- MySQL 使用者及許可權管理?MySql
- 淺談PostgreSQL使用者許可權SQL
- MongoDB 使用者與許可權管理MongoDB
- 使用者許可權管理之使用者與組管理
- Linux使用者/使用者組/許可權相關命令Linux
- MySQL新增新使用者、為使用者建立資料庫、為新使用者分配許可權MySql資料庫
- 授權|取消授權MYSQL資料庫使用者許可權MySql資料庫
- win10企業版如何成為最高許可權使用者_win10怎麼成為最高許可權使用者Win10
- 無 sudo 許可權使用者的生存指南
- 如何讓普通使用者獲取root使用者的許可權
- 使用者角色許可權管理架構架構
- mysql 8.0.21使用者及許可權操作MySql
- 入門MySQL——使用者與許可權MySql
- MySQL入門--使用者與許可權MySql
- 普通使用者許可權執行dockerDocker
- OpenShift 使用者許可權管理例項
- 如何檢視postgresql使用者許可權SQL
- 讓root使用者有super許可權