不同scheam下查询视图报错ORA-01031的故障解决

客户在schema MEDADM下创建了一个视图,并且将视图的查询权限赋予给了另一个用户BAZK.

但是使用BAZK查询视图的时候还是报错:

ORA-01031: insufficient privileges

我查看了视图的内容,视图很复杂,涉及的表有10个左右.使用BAZK用户查询视图中的表都是有权限的查询的.

注意到这个视图中的表并不全是MEDADM下的,例如还有表是INPADM下的.那么这里就涉及到了很多用户,在此归类一下:

1.原始的基表用户.例如这里的INPADM或者其它的用户.

这个用户下是真正存放数据表的用户

2.视图用户

此用户是创建的视图用户.

3.查询用户

此用户是前台连接会话查询的用户

如果想要查询用户具有查询视图的权限.则视图用户和查询用户必须具有原始基表用户表的select权限(显式赋权)并且一定要赋予with grant option

参考oracle MOS文档:

因此解决办法:

1. grant select on 表用户.表名 to  视图用户 with grant option;

2.grant select on 表用户.表名 to  查询用户 with grant option;

3. grant select on 视图用户.视图名 to 查询用户 with grant option;

这里一定要显式的授予权限.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值