今天收到这样一个问题,一个MIS系统,对外应该发布的数据是几十条,但目前发布出来只有几条,发布程序那边没有报任何异常(写的也不健壮)
于是看看对外的公共接口表的数据,发现确实是只有几条,数据都没有被抽取到公共接口表中来,于是自己执行了下抽取数据的过程
就出现了开头的异常,出错了ORA-01536: 超出表空间 'JYY' 的空间限额
JYY表空间是设置的自动增长,但为什么是出现的这种问题呢?
现在就来说说这整个的结构,一个业务用户A,一个过渡用户B,还有一个接口用户X,最开始的想法是X用户下面是空的,只有几个同义词链接到B用户下,X用户只具有执行特定存储过程和操作特定表的权限(当然这只是我们的臆想,有漏洞的Oracle是可以被提升低权限用户到高权限的)。
实际的抽取数据的存储过程和装载数据的公共接口表都在B用户下,A是业务用户,所有的数据都是从它那来的
但是施工的过程当中由于偷懒或没注意,B用户下存数数据的载体表都被直接挂到了A用户的表空间下(哦,天啦,你一定认为这是不可思议的事情),但确实是这样了
因为我们B和X用户都没有动态更新JYY表空间的权限,而且碰巧该表空间的使用量已经超过99.53%,所以就发生了最开始的一幕
临时解决办法就是给admin权限,让客户先挺过,然后有空再来规划调整这一块的问题
于是看看对外的公共接口表的数据,发现确实是只有几条,数据都没有被抽取到公共接口表中来,于是自己执行了下抽取数据的过程
就出现了开头的异常,出错了ORA-01536: 超出表空间 'JYY' 的空间限额
JYY表空间是设置的自动增长,但为什么是出现的这种问题呢?
现在就来说说这整个的结构,一个业务用户A,一个过渡用户B,还有一个接口用户X,最开始的想法是X用户下面是空的,只有几个同义词链接到B用户下,X用户只具有执行特定存储过程和操作特定表的权限(当然这只是我们的臆想,有漏洞的Oracle是可以被提升低权限用户到高权限的)。
实际的抽取数据的存储过程和装载数据的公共接口表都在B用户下,A是业务用户,所有的数据都是从它那来的
但是施工的过程当中由于偷懒或没注意,B用户下存数数据的载体表都被直接挂到了A用户的表空间下(哦,天啦,你一定认为这是不可思议的事情),但确实是这样了
因为我们B和X用户都没有动态更新JYY表空间的权限,而且碰巧该表空间的使用量已经超过99.53%,所以就发生了最开始的一幕
临时解决办法就是给admin权限,让客户先挺过,然后有空再来规划调整这一块的问题