页面树结构
转至元数据结尾
转至元数据起始

(本文档仅供参考)

问题

          oracle数据源管理添加表操作,有两个用户,两个用户权限都是DBA,然后用户A可以正常添加表,用户B不能正常添加表。排除了用户权限不一样的问题,因为查看了下,确实是一样的,还有什么原因能否参考分析?

          

解决方案

         其实问题是数据库相关的问题,直接找数据库DBA分析会更快解决。此问题分析步骤仅供借鉴,不一定可以解决其他的数据源管理添加表报错:

         1、确定两个数据库用户的数据库权限是否一致。

         2、权限一致的情况下,进行如下检查

              方法1:根据指定用户名获得对应用户所拥有权限的表

              SELECT table_name, owner FROM all_tables WHERE owner = 'SCOTT';

              方法2:通过tab视图获得当前登录用户所有表和视图,通过tabletype过滤获得所有表

              SELECT * FROM tab WHERE tabtype = 'TABLE';

         3、确定表是属于当前用户的情况下还是添加报错,再次分析发现是因为这个用户对于all_tab_columns,查询看看是否能查到数据 :select * from all_tab_columns

         4、在第3步骤确定了,当前用户查询all_tab_columns看不到任何数据,这时候,需要找DBA进一步确认,是否是没有权限。

         5、最终原因,原来这个stg用户下有个表就叫all_table_column,所以jdbc调用接口的时候没去查询系统字典表这个视图。

         问题原因:检查无法正常添加表的用户是否是创建了和 数据库系统表同样的名称,不建议这样设置,因为对于数据库来说都有属于数据库的关键字,关键字相同会引发一些接口调用获取信息无法正常。

         解决方案:移除和系统表相同名称的表或者关键字。


Viewtracker License Missing

There is a problem with the license of the Viewtracker addon. Please check if you have a valid license.

授权码细节

  • 无标签