關於under any table/view 許可權的解釋

lhrbest發表於2014-09-10

關於under any table/view 許可權的解釋

使用者擁有這個許可權之後,對其它使用者下的物件如果存在的話會顯示 許可權不足,而不會顯示 表或檢視不存在了,廢話少說,直接看例子吧:

 

C:\Users\Administrator>sqlplus sys/lhr@orclasm as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 9月 10 11:10:20 2014

 

Copyright (c) 1982, 2010, Oracle. All rights reserved.

 

 

連線到:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

 

SQL> select * from v$version;

 

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE 11.2.0.3.0 Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

 

---回收scott使用者的2個許可權

SQL> revoke under any table from scott;

 

撤銷成功。

 

SQL> revoke under any view from scott;

 

撤銷成功。

 

--檢視lhr使用者下的表products_lhr和檢視vw_tmp_lhr,不存在表ttttttt

SQL> conn lhr/lhr@orclasm

已連線。

SQL> select count(1) from lhr.products_lhr;

 

COUNT(1)

----------

0

 

SQL> select count(1) from lhr.vw_tmp_lhr;

 

COUNT(1)

----------

0

 

SQL> select * from lhr.ttttttt;

select * from lhr.ttttttt

*

第 1 行出現錯誤:

ORA-00942: 表或檢視不存在

 

--使用scott使用者來檢視lhr使用者下的表products_lhr和檢視vw_tmp_lhr,不存在表ttttttt

---這裡的錯誤為 不存在

SQL> conn scott/tiger@orclasm

已連線。

SQL> select count(1) from lhr.products_lhr;

select count(1) from lhr.products_lhr

*

第 1 行出現錯誤:

ORA-00942: 表或檢視不存在

 

 

SQL> select count(1) from lhr.vw_tmp_lhr;

select count(1) from lhr.vw_tmp_lhr

*

第 1 行出現錯誤:

ORA-00942: 表或檢視不存在

 

--- 使用sys使用者對scott使用者授權

SQL> conn sys/lhr@orclasm

已連線。

SQL> grant under any table to scott;

 

授權成功。

 

---使用scott使用者查詢,錯誤變為了許可權不足,至此大家就明白了這個許可權的幹啥用的了

SQL> conn scott/tiger@orclasm

已連線。

SQL> select count(1) from lhr.products_lhr;

select count(1) from lhr.products_lhr

*

第 1 行出現錯誤:

ORA-01031: 許可權不足

 

 

SQL> select count(1) from lhr.vw_tmp_lhr;

select count(1) from lhr.vw_tmp_lhr

*

第 1 行出現錯誤:

ORA-00942: 表或檢視不存在

 

 

SQL> conn sys/lhr@orclasm as sysdba

已連線。

SQL> grant under any view to scott;

 

授權成功。

 

SQL> conn scott/tiger@orclasm

已連線。

SQL> select count(1) from lhr.vw_tmp_lhr;

select count(1) from lhr.vw_tmp_lhr

*

第 1 行出現錯誤:

ORA-01031: 許可權不足

 

 

 

SQL> select * from lhr.ttttttt;

select * from lhr.ttttttt

*

第 1 行出現錯誤:

ORA-00942: 表或檢視不存在

 

 

SQL>

 

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

相關文章