ORA-01031:插入权限不足

从NUMBER(4)到VARCHAR2(4)的e列的数据类型发生了变化。 DBA完成了现有值的转换。

现在当我们尝试使用proc * c代码将记录插入表中时,它会给出错误“ORA-01031:权限不足”。

从SQLPLUS我们可以插入记录。 一段时间后,问题就消失了。 DBA重建表后问题就消失了。

每次我们使用新更改刷新测试环境后,都会出现此问题。

有一些可能性。

通过运行以下SQL命令仔细检查您的表权限:

 SELECT * FROM dba_tab_privs tp WHERE tp.owner = '' AND tp.table_name = ''; 

如果通过角色授予您的权限,请通过检查上面的GRANTEE,在下面的查询中显示属性“DEFAULT_ROLE”= YES,确保该角色已启用。

 SELECT * FROM dba_role_privs rp WHERE rp.grantee = ''; 

如果不是,并且假设您的DBA和应用程序设计没有安全问题,您可以通过运行以下命令启用它:

 alter user  default role all; 

然后,再次确保您是否正在重新创建表格,每次丢弃它并再次创建时,都会相应地运行您的授权。

运行此行:

 grant insert on [table] to [user] 

[table]更改为您的表名并将[user]更改为您的用户。