ITPub博客

首页 > 数据库 > Oracle > 关于ORA-28031问题的解决

关于ORA-28031问题的解决

原创 Oracle 作者:kl911 时间:2008-08-01 11:39:36 0 删除 编辑

在一次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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-03

  • 博文量
    20
  • 访问量
    318500