文档解释
ORA-01031: insufficient privileges
Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login.
Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label.
ORA-01031: insufficient privileges错误表明,用户没有足够的权限来执行其尝试的操作,通常是当用户试图创建或修改表,目录或一个用户的帐户时。此错误只在12c及以上版本中触发,这里可以用常见的7条方法来解决:
1. 查看登录的用户是否有创建表等权限,具体查询可用下面语句查看:
SELECT GRANTED_ROLE FROM DBA_SYS_PRIVS WHERE GRANTEE = ‘ & user_name
2. 检查当前会话使用的对象是否存在,如果不存在,应当检查错误号来确定创建的对象是否已经存在。
3. 尝试用两个参数确定ORA-01031错误,如P_SESSIONS = NONE和P_USERCOMMIT =T,两个参数一起确定会话的行为是否符合预期,若不符合预期,则可以将其设置为可以正确执行操作
4. 尝试从sysdba或sysoper用户重新登录,这样可以大大增加任何操作或行为的权限层级。
5. 考虑连接方式:sqlplus登录也会存在ORA-01037: insufficient privileges错误,重新更换一种连接方式即可解决。
6. 检查ORACLE报错信息文件: 使用一些其他工具,比如Toad等,工具会自动检查oracle的报错信息,及时发现导致ORA-01037的根源。
7. 检查连接状态: 在新的sql session中使用 “show user;” 命令来检查当前错误所处的用户状态,确认当前用户是否有权限操作。