文档解释
ORA-46085: Cannot modify system attribute in dynamic roles
Cause: An attempt was made to modify system attribute in dynamic roles.
Action: Attempt operation without modifying the value of system.
ORA-46085: Cannot modify system attribute in dynamic roles
错误说明
ORA-46085是一个可复现的Oracle升级错误,它指示在试图在动态角色中修改系统属性的期间发生了错误。这是由于对于动态角色,父角色和子角色都同时有效。
常见案例
ORA-46085可以在尝试在动态角色上附加一个Oracle自动任务时发出。在这种情况下,动态角色已创建,但是当你试图安排一个自动任务时,你可能会遇到该错误。
解决方法
从ORA-46085恢复,可以通过重新定义现有的动态角色,并且一个子角色不能拥有任何system属性,来解决这个问题。
首先,可以使用“create role”(Create Role)语句,使sysdba用户超级角色权限来重新定义现有的动态角色。然后,可以使用“grant”(Grant)语句,将一些非System属性授予动态角色的子角色。最后,可以使用“alter role”(Alter Role)语句,将System属性从子角色中撤销,以有效地更新现有动态角色并消除IRQ-46085。