【Oracle】-【ORA-01031】-建立基於資料字典表的檢視無許可權的問題
SQL> create or replace view redo_size as
2 select name, value from v$statname n, v$sesstat t, v$session s
3 where s.audsid = sys_context('USERENV','SESSIONID')
4 and t.sid = s.sid
5 and n.statistic#=t.statistic#
6 and n.name = 'redo size';
select name, value from v$statname n, v$sesstat t, v$session s
*
ERROR at line 2:
ORA-01031: insufficient privileges
但單獨執行
SQL> select name, value from v$statname n, v$sesstat t, v$session s
2 where s.audsid = sys_context('USERENV','SESSIONID')
3 and t.sid = s.sid
4 and n.statistic#=t.statistic#
5 and n.name = 'redo size';
NAME VALUE
redo size 2452
是可以的。
當前使用者的許可權包括:
ALTER SESSION
CREATE SESSION
UNLIMITED TABLESPACE
網上有帖子說:
1、賦予此方案物件SELECT ANY TABLE 的許可權。-這裡嘗試後依舊報錯。
2、使用grant select on v$statname to star,嘗試後也是報錯。
3、grant select any dictionary to test;-需l給使用者授權檢視任何字典的許可權。嘗試後可以建立。
我的理解:star這個使用者可以單獨訪問v$statname、v$sesstat、v$session這些字典表,但CREATE VIEW時不行,根據惜分飛的文章介紹,有可能是因為是因為不同schema的問題,總結的:
1)在同一個schema下,有查詢許可權,就可以建立檢視。
2)在不同schema下,即使有了查詢許可權,建立檢視,還是會提示ORA-01031。
文章中介紹需要sys賬戶將資料字典的訪問許可權賦予star使用者,但這裡還要注意的是V$SESSION是一個public的同義詞,根據前幾篇部落格介紹的方法,可以看到它封裝的是x$ksuse這個表,好像沒看到過將這種表賦予使用者許可權的?
這個問題的解決方法是賦予使用者select any dictionary的許可權。但除此之外是否還有其它方法?請高手指點!
>經過高手指教,這個問題最簡單的方法就是用sys賬戶登入,grant select on v_$statname ... to user,將v$引用的v_$許可權賦予使用者,就可以了。select any dictionary這個許可權最好不要輕易賦予普通使用者。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7192724/viewspace-767783/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle中建立檢視,提示無許可權 ORA-01031Oracle
- Oracle許可權(二)許可權相關的動態效能檢視與資料字典檢視Oracle
- Oracle 資料庫字典 檢視 基表Oracle資料庫
- Oracle建立表空間、建立使用者、授權、授權物件的訪問以及檢視許可權集合Oracle物件
- Oracle 建立表空間、建立使用者以及授權、檢視許可權Oracle
- Oracle資料庫scott使用者建立view檢視許可權Oracle資料庫View
- Oracle檢視許可權Oracle
- postgresql關於訪問檢視需要的許可權SQL
- oracle的儲存許可權的檢視Oracle
- 基於角色的許可權系統的問題
- 關於oracle檔案許可權的問題Oracle
- 關於檢視和儲存過程的許可權問題探究儲存過程
- Oracle 使用者許可權管理與常用許可權資料字典列表Oracle
- oracle資料字典表與檢視Oracle
- Oracle 常用資料字典表、檢視的總結Oracle
- Oracle 常用資料字典檢視、表的總結Oracle
- 檢視PG資料庫的許可權情況資料庫
- oracle許可權相關檢視Oracle
- SQL Server資料庫檢視login所授予的具體許可權問題SQLServer資料庫
- Oracle建立表空間、建立資料庫使用者、賦許可權Oracle資料庫
- Oracle中幾個常見的用於查許可權的檢視Oracle
- Oracle建立使用者並給使用者授權查詢指定表或檢視的許可權Oracle
- Oracle檢視使用者許可權Oracle
- 檢視oracle 使用者許可權Oracle
- Mysql資料庫許可權問題MySql資料庫
- Oracle 資料字典和資料字典檢視Oracle
- 檢視Oracle使用者的許可權或角色Oracle
- Oracle角色、許可權的一些常用檢視Oracle
- 系統許可權相關資料字典
- 檢視許可權的設定案例
- 關於公司程式碼許可權的問題
- 詳解Oracle使用者許可權檢視的使用Oracle
- 查詢沒有許可權但資料字典中顯示有許可權
- oracle資料庫使用者建立、許可權分配Oracle資料庫
- 請教:一個關於行級資料許可權模型的問題模型
- oracle常用資料字典.檢視Oracle
- Oracle檢視使用者預設表空間、臨時表空間、系統許可權、物件許可權、角色許可權舉例說明Oracle物件
- Ubuntu共享資料夾訪問許可權問題Ubuntu訪問許可權