业务场景:客户增加BI分析。BI要抓取数据库数据,数据通过oracle视图的形式提供。客户要求只能赋予BI用户查询权限。数据库中创建视图授权给BI用户后,BI用户直接查询视图报无视图不存在,必须加前缀
//用户:main
select * from VV_TEMP;
//授权视图
grant select on main.VV_TEMP to bi;
//用户:bi
select * from main.VV_TEMP;
//bi用户下 直接访问会报视图不存在
select * from VV_TEMP;
必须要加前缀,但BI方那边已经做了代码逻辑无法再改动。
解决方案:Oracle 同义词
//创建同义词
CREATE PUBLIC SYNONYM V_TEMP FOR main.VV_TEMP;
//注意:创建的原始图名称不能与同义词名称一致。
//删除同义词
DROP PUBLIC SYNONYM V_TEMP;