(本文档仅供参考)
问题
oracle数据源管理添加表操作,有两个用户,两个用户权限都是DBA,然后用户A可以正常添加表,用户B不能正常添加表。排除了用户权限不一样的问题,因为查看了下,确实是一样的,还有什么原因能否参考分析?
解决方案
其实问题是数据库相关的问题,直接找数据库DBA分析会更快解决。此问题分析步骤仅供借鉴,不一定可以解决其他的数据源管理添加表报错:
1、确定两个数据库用户的数据库权限是否一致。
2、权限一致的情况下,检查 2、权限一致的情况下,进行如下检查
方法1:根据指定用户名获得对应用户所拥有权限的表
...
SELECT * FROM tab WHERE tabtype = 'TABLE';
3、确定表是属于当前用户的情况下还是添加报错,我们再次分析发现是因为这个用户对于all 3、确定表是属于当前用户的情况下还是添加报错,再次分析发现是因为这个用户对于all_tab_columns,查询看看是否能查到数据 :select * from all_tab_columns
4、在第3步骤确定了,当前用户查询all_tab_columns看不到任何数据,这时候,需要找DBA进一步确认,是否是没有权限。
5、最终给解决了,原来这个stg用户下有个表就叫all 5、最终原因,原来这个stg用户下有个表就叫all_table_column,所以jdbc调用接口的时候没去查询系统字典表这个视图。
...
解决方案:移除和系统表相同名称的表或者关键字。
Viewtracker |
---|