从NUMBER(4)到VARCHAR2(4)的e列的数据类型发生了变化。 DBA完成了现有价值的转换。
现在当我们尝试使用proc * c代码将记录插入表中时,它会给出错误“ORA-01031:权限不足”。
从SQLPLUS我们可以插入记录。一段时间后,问题就消失了。 DBA重建表后问题就消失了。
每次使用新更改刷新测试环境后都会出现此问题。
答案 0 :(得分:3)
有一些可能性。
通过运行以下SQL命令仔细检查您的表权限:
SELECT *
FROM dba_tab_privs tp
WHERE tp.owner = '<YOUR_OWNER>'
AND tp.table_name = '<YOUR_TABLE_NAME>';
如果通过角色授予您的权限,请确保通过检查上面的GRANTEE在下面的查询中显示的属性为&#34; DEFAULT_ROLE&#34;来确保该角色已启用。 =是。
SELECT * FROM dba_role_privs rp WHERE rp.grantee = '<USER_RUNNING_THE_INSERT>';
如果不是,并且假设您的DBA和应用程序设计没有安全问题,您可以通过运行它来启用它:
alter user <YOUR_USER_RUNNING_THE_INSERT> default role all;
然后再次确定您是否重新创建表格,每次丢弃并再次创建时,都会相应地运行您的授权。
答案 1 :(得分:2)
运行此行:
grant insert on [table] to [user]
将[table]
更改为您的表名,并将[user]
更改为您的用户。