E one列的数据类型从NUMBER(4)更改为VARCHAR2(4)。DBA执行现有值的转换。
现在,当我们尝试使用proc *c代码将记录插入到表中时,它给出了错误"ORA-01031:权限不足“。
我们可以从SQLPLUS中插入记录。过了一段时间,问题就消失了。一旦DBA重新构建了表,问题就消失了。
每次我们用新的更改刷新测试环境之后,就会发生这个问题。
发布于 2017-07-24 00:37:05
运行以下代码行:
grant insert on [table] to [user]将[table]更改为您的表名,并将[user]更改为您的用户。
发布于 2016-01-12 06:57:57
有一些可能性。
通过运行以下SQL命令,仔细检查您的表权限:
SELECT *
FROM dba_tab_privs tp
WHERE tp.owner = '<YOUR_OWNER>'
AND tp.table_name = '<YOUR_TABLE_NAME>';如果您的权限是通过角色授予的,请检查上面的被授权者(在下面的查询中)是否显示了属性"DEFAULT_ROLE“= YES,以确保启用了该角色。
SELECT * FROM dba_role_privs rp WHERE rp.grantee = '<USER_RUNNING_THE_INSERT>';如果不是,并且假定您的DBA和应用程序设计没有安全问题,您可以通过运行以下命令来启用它:
alter user <YOUR_USER_RUNNING_THE_INSERT> default role all;此外,如果您正在重新创建表,请确保每次删除它并重新创建时,都会相应地运行您的授权。
https://stackoverflow.com/questions/34732548
复制相似问题