我在Oracle上使用蟾蜍,并连接到一个11g数据库。我有一个用户,该用户具有角色关联指定的create角色系统特权,但是当我运行该语句时:
create role myNewRole;
我知道错误:
ora-01031不充分的特权
我不明白这里有什么问题,因为我以前做过很多次,从来没有遇到过问题。我找不到任何类似的问题,通过谷歌或堆栈创建角色声明。
有人知道这是怎么回事吗?
发布于 2014-01-09 04:49:13
通过查看针对用户的角色关联解决了问题。结果表明,它不是作为默认角色设置的,因此解决方案是以下两种方法之一:
alter user <username> default role <role_list>;
将角色设置为默认角色SET ROLE <role>;
将会话中的角色设置为active当然,如果您的角色具有安全性,那么您必须在identified by <password>
之后使用<role>
。
指定角色的Doco和默认角色的Doco
我对这个问题的理解是,Oracle可能存在这样的情况:您希望某个角色与用户关联,但是默认情况下您不希望它处于活动状态,所以您必须在会话期间显式地启用它来使用它,这是对数据库的额外保护。如果将角色设置为默认角色,则每次登录时它都是活动的,因为预期该角色的权限将被更频繁地使用,并且/或不会对数据库产生重大影响(负面)。
谢谢你的评论@ChrisFarmer,因为当我意识到sys的特权不在我的课程中时,它把我引向了我正在寻找的答案的方向。
发布于 2014-10-08 01:48:48
它解释了为什么我授予DBA角色的用户在尝试更改另一个用户的密码时会收到ORA-01031。在会议上,他需要确定角色;
https://stackoverflow.com/questions/21010608
复制相似问题