数据中心有TA和VM两个用户,原来TA底下有一个Package,名叫pckg_dw_cust_query,在asp.net应用程序中都是通过ta.pckg_dw_cust_query来调用的,现在由于程序的改动,将这个包移到vm用户下面去了。此时,网站程序中原来调用ta.pckg_dw_cust_query查询数据的页面报错。
对于这个问题,通过创建一个synonym可以完美的解决(即asp.net端程序不作任何修改)。在ta用户下建一个与包名同名称的同义词,然后将vm.pkcg_dw_cust_query的execute权限赋给ta用户。这样就解决问题,应用程序不作修改(ta.pkcg_dw_cust_query调用的方式仍旧是正确的)。附sql执行语句如下:
CREATE SYNONYM "TA"."PCKG_DW_CUST_ANALYZE" FOR "VM"."PCKG_DW_CUST_ANALYZE";
GRANT EXECUTE ON "VM"."PCKG_DW_STAT_QUERY" TO "TA";