ORA-01925: maximum of 148 enabled roles exceeded
Attention cet article concerne essentiellement Oracle 9i, le paramètre MAX_ENABLED_ROLES étant obsolète en 10g…
Lors du CREATE ROLE avec option par defaut, le role créé est affecté implicitement au createur qui peut donc le GRANTer grace a son admin option par defaut (et aussi si le role est ensuite revoqué ce qui est plus étonnant…)
remarque : si le role est role ‘ enterprise ‘ ou ‘ global role ‘ dans la terminologie Oracle, le role n’est pas granté au créateur
Dans le cas standard, cet héritage peut etre génant particulierement pour des comptes DBA (genre SYSTEM ou OEM_CONNECT, qui est l’utilisateur par défaut de la console OEM) consommateurs de ce genre de commandes.
Le MAX_ENABLED_ROLES etant une limite PAR USER, il peut etre facilement atteint.
Solution (résolution)
1) vérifier s’il n’y a pas de role superflus et le cas échéant les supprimer
2) dans un deuxieme temps seulement ! : augmenter le MAX_ENABLED_ROLES
remarque : la valeur maximum autorisée de MAX_ENABLED_ROLES est 148
Effet pervers : si la limite courante est atteinte par OEM_CONNECT on ne peut plus se connecter a la console d’administration OEM, par contre cf ce qui est dit + haut on peut eventuellement se connecter en Standalone, via un autre compte DBA…