您的位置:首页 > 数据库 > Oracle

同一张表上有不同用户创建的索引造成表空间无权限问题

2015-02-26 15:14 253 查看
--问题描述:

开发反映有一张表无法插入,报对表空间无权限的错误。

经测试发现确实无法插入,查询相关对象权限,系统权限也没有问题。

最后发现问题出在该表的一个索引上,该索引的owner是另外一个用户,但是表空间却是在表所在表空间下,导致错误的发生

--问题分析:

假设A用户下的一张表A.table, A对于表空间A_TBS有unlimited的权限

用户a对表A.table有增删改查的权限。

但是在表A.table上,有一个索引idx的owner是B,而B.idx的表空间又是A_TBS

之前用户B有unlimited tablespace的系统权限,但这个用户最近不需要了,所以其权限被收回了。

但是对应的索引B.idx还在。

所以当用户a对表A.table进行修改的时候,有时就会用到索引B.idx,这时就会报表空间无权限的错误了。

这里是指用户B对表空间A_TBS无权限。

--问题解决:

临时的处理办法就是给用户B增加unlimited tablespace的权限,问题解决

等到业务不忙的时候再把索引B.idx 重建一下,改成A.idx,再把上面的权限收回即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐