2013-06-05 23 views
1

據報道,當前的Oracle 11g架構用戶具有超出限制的權限,例如,用戶對整個數據庫具有完全導入/導出權限,用戶可以在其他架構上執行DDL。如何清理當前oracle用戶的權限

那麼我們如何才能找出當前用戶的權限並使用查詢進行清理呢?我知道有三個

SELECT * FROM USER_SYS_PRIVS; 
SELECT GRANTEE, TABLE_NAME, PRIVILEGE FROM USER_TAB_PRIVS WHERE GRANTOR='USERNAME'; 
SELECT * FROM USER_ROLE_PRIVS; 

但哪一個是最想要的和如何清理?目前似乎沒有人給出當前用戶產生問題的完全特權。

+1

您的疑問應該涵蓋一切;授予既可以是對象也可以是系統特權,並且可以是直接授予也可以是角色授予。三個查詢中的任何一個都可能存在「不良」特權。我不確定我們是否能夠幫助你,沒有邪惡補助金,這完全取決於你的系統。 –

+0

@jonearles謝謝。那麼我可以使用上面的查詢之一來檢查當前用戶是否有權限impdp或expdp oracle數據庫?用戶具有此特權,但在任一查詢結果中均未顯示。 – Dreamer

+1

是的。除了Dave的回答,我認爲普通的IMP和EXP,IMP_FULL_DATABASE和EXP_FULL_DATABASE的老角色也同樣危險。 –

回答

2

最危險的特權是其中任何名稱的特權 - 選擇任何表,更改任何視圖等。它們應嚴格限制爲僅限DBA和支持人員。

您正在尋找的角色是DATAPUMP_EXP_FULL_DATABASE和DATAPUMP_IMP_FULL_DATABASE我相信。

+0

謝謝,我是甲骨文的新手,所以我可以問什麼是查詢來查找當前用戶可以訪問的模式列表? – Dreamer

相關問題