同一张表上有不同用户创建的索引造成表空间无权限问题
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,再把上面的权限收回即可
开发反映有一张表无法插入,报对表空间无权限的错误。
经测试发现确实无法插入,查询相关对象权限,系统权限也没有问题。
最后发现问题出在该表的一个索引上,该索引的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,再把上面的权限收回即可
相关文章推荐
- ORACLE11G用户在任何表空间都有创建表的权限问题
- 索引造成的对表空间无权限问题一例
- oracle创建表空间并授予用户权限
- MySQL命令行 不同端口登录 执行SQL文件 创建用户 赋予权限 修改root密码
- Oracle创建表空间、创建用户以及授权、查看权限
- Oracle创建表空间、创建用户以及授权、查看权限
- oracle创建表空间并授予用户权限
- oracle创建表空间并授予用户权限
- 一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户
- ORACLE创建表空间、创建用户、更改用户默认表空间以及授权、查看权限(修改表空间大小)
- 创建临时表空间,表空间用户(分配权限)
- Oracle创建表空间、创建用户以及授权、查看权限
- 一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户
- Oracle在linux中创建表空间、用户以及权限
- Oracle创建表空间、创建用户、授权、授权对象的访问以及查看权限
- 一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户
- MySQL命令行 不同端口登录 执行SQL文件 创建用户 赋予权限 修改root密码
- oracle*用代码创建表空间,用户并赋权限
- 创建空间用户并赋权限,导入dmp
- 不同用户间创建视图提示权限不足,解决方法