關於ORA-28031問題的解決

kl911發表於2008-08-01

在一次vpn賬號過期以後,重新連oracle發現出現瞭如下問題:

> conn bm0658@adw1d.na.pg.com
Enter password:
ERROR:
ORA-28031: maximum of 148 enabled roles exceeded

在DBA_PRIVS_ROLE裡面看,擁有兩個role, 一個是公司的role,裡面有137個子role, 另一個是DBA有12個子role; 加起來正好149個,超過了148,所以報這個錯誤;oracle對最大role數量的限制為148,即便是你將max_enabled_roles引數設為一個很大的值;

這是如果你的account的default role為all, 即dba_privs_role裡面全為yes,在登陸時就會檢查所有的role是否超過148這個數,如果超過就會報ORA-28031的錯誤;

於是我們就只能透過修改default role的方式來解決ORA-28031: 具體做法見 http://www.itpub.net/165877,2.html 裡面的實 驗; 修改操作過程如下:

kl@k01> col granted_role for a10
kl@k01> alter user kl default role all;

User altered.

kl@k01> select granted_role, default_role from dba_role_privs where grantee='KL';

GRANTED_RO DEFAULT_R
---------- ---------
DBA YES
KL_1 YES

kl@k01> alter user kl default role dba;

User altered.

kl@k01> select granted_role, default_role from dba_role_privs where grantee='KL';

GRANTED_RO DEFAULT_R
---------- ---------
DBA YES
KL_1 NO

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/661919/viewspace-1008274/,如需轉載,請註明出處,否則將追究法律責任。

相關文章