Oracle
USER_TAB_PRIVS 中缺少查看權限
我不知道如何查看我在視圖中授予使用者的權限——
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'