登录PeopleTools 提示ora-00942表视图不存在 select xxx from sysadm.psoprdefn

起因:本来跟DBA说了把生产的库同步到CFG环境,还跟她说了,dev tst cfg在一台机器上,结果她还是把dev给覆盖了,幸好及时发现,一部分对象被删除了(序列,视图,有可能也有表)。

视图和一部分表被删了,就得重新建立,这时候AD工具是可以登录的,我就用工具把表和视图都插入到工程中,然后开始create+alter+create view时间还挺长的,PS有2w+的表,完成后就把AD退了。

再登录时候,出问题了,不过PIA可以正常访问。

AD 提示如图错误:

提示PSOPRDEFN表不存在。

我擦,难道这个表被删了?赶紧到数据库中查,发现在的。

然后再观察错误发现表名PSOPRDEFN前有SYSADM账号,突然想起来AD工具连接数据库不是通过SYSADM账号,是用的people,如图:

people账号一共需要访问3张表PSSTATUS PSOPRDEFN PSACCESSPRFL

因为我是把所有的表ALTER了,执行的数据库的DML操作,表如果被执行了DML操作,是需要重新赋权的。

grant select on SYSADM.PSSTATUS to PEOPLE; 

grant select on SYSADM.PSOPRDEFN to PEOPLE; 

grant select on SYSADM.PSACCESSPRFL to PEOPLE;

登录PLSQL执行上述语句,至此问题解决。

我的公众号:

原文地址:https://www.cnblogs.com/eason-liu/p/7136139.html