2014-01-09 25 views
0

我正在使用TOAD for Oracle並連接到11g數據庫。我有誰擁有由角色協會指定的創建角色系統privilage用戶,但是當我運行該語句:創建角色聲明導致ora-01031權限不足

create role myNewRole; 

我得到的錯誤:

ORA-01031權限不足

我不明白這是什麼問題,因爲我在一堆時間之前完成了這個任務,從來沒有遇到過問題。我無法通過谷歌或堆棧找到與創建角色聲明有關的任何類似問題。

任何人對這裏發生了什麼有任何想法?

+1

當用戶從SESSION_PRIVS中選擇時,您是否看到'create role'? –

回答

1

問題是通過查看與用戶的關聯角色解決的。事實證明,它不設置爲默認的角色,因此解決方案是一個二:

  • 設置使用SET ROLE <role>;
  • 作用,作爲一個默認與 alter user <username> default role <role_list>;
  • 設置爲活躍在會議中的作用

當然,如果您的角色具有安全性,那麼你將有<role>後使用identified by <password>

Doco for SET ROLEDoco for Default Role

我對這個問題的理解是,Oracle可以有你想要用,但是你不希望它積極的默認用戶關聯的角色的情況下,所以你必須明確地在會話過程中啓用使用它,這是您的數據庫額外的保護。當角色設置爲默認角色時,每次登錄時都會激活角色,因爲角色的權限預期會更頻繁地使用和/或對數據庫沒有太大影響(負面)。

感謝您對@ChrisFarmer的評論,因爲它引導了我一直在尋找的答案的方向,一旦我意識到sys privilage不在我的會話中。

0

它解釋了爲什麼我授予DBA角色的用戶在嘗試更改另一個用戶的密碼時收到了ORA-01031。在會議上他需要設置角色;