首页 > 代码库 > ORA-01925:maximum of 80 enabled roles exceeded

ORA-01925:maximum of 80 enabled roles exceeded

ORA-01925:maximum of 80 enabled roles exceeded

max_enabled_roles 9i的参数,10g及以后都不用了。
指定用户session的最大enabled roles数。

MAX_ENABLED_ROLES specifies the maximum number of database roles that users can enable, including roles contained within other roles. The actual number of roles that users can enable is 2 plus the value of MAX_ENABLED_ROLES, because each user has two additional roles, PUBLIC and the user‘s own role.
For example, if MAX_ENABLED_ROLES is set to 5, then user HR can have seven roles enabled (the five enabled by MAX_ENABLED_ROLES, plus PUBLIC and HR).

查查系统用得比较多role的用户,但这样查出来,还不包括以role授予给role再授予用户的嵌套情况
select grantee,count(*) from dba_role_privs group by grantee order by count(*) desc;

也可以直接查当前会话enable的role数量
select count(*) from session_roles;

如果用户登陆不上了,必然是授予太多role了。
可以改大参数,但要重启库。
alter system set max_enabled_roles=148 scope=spfile;

嗯,最大值是148,不能设置为更大的了