Oracle

USER_TAB_PRIVS 中缺少查看權限

  • July 17, 2015

我不知道如何查看我在視圖中授予使用者的權限——

FIRSTUSER@SQL> create view remotetabletest
 2  as select * from A_TABLE where PKEY = '123456'
 3  /

FIRSTUSER@SQL> grant select on remotetabletest to USERB;
FIRSTUSER@SQL> exit

[... login as USERB ...]

USERB@SQL> select count(*) from FIRSTUSER.remotetabletest;

 COUNT(*)
----------
       1

USERB@SQL> select * from user_tab_privs where TABLE_NAME = 'remotetabletest';

no rows selected

通常,如果這是一張表,查詢user_tab_privs將返回有關“GRANT SELECT”的行,但對於視圖,我什麼也得不到。

我也嘗試dba_tab_privs從 SYS 查詢:什麼都沒有。

(另外,實際上,我正在通過 DB Link 創建視圖,但這似乎與我的問題無關。)

SQL 中不帶引號的標識符被隱式轉換為大寫,因此該語句create view remotetabletest創建名為 的視圖'REMOTETABLETEST',而不是'remotetabletest'

換句話說,以下應該返回預期的結果:

select * from user_tab_privs where TABLE_NAME = 'REMOTETABLETEST'

引用自:https://dba.stackexchange.com/questions/107369