Oracle创建同义词事情一例
背景:
某系统为核心数据系统,周边有外围系统需要查询该系统数据。
方案:
为了不让周边系统加schema前缀,需创建一个用户,为该用户创建所有需要读的schema的表的同义词,然后让周边系统通过这个只读用户进行读取。
操作:
1、拼SQL:
select 'CREATE SYNONYM ABCRO.' || t.table_name || ' FOR ABC.' || t.table_name || ';' FROM dba_tables t where t.owner = 'ABC';
2、执行上述sql的结果
3、给ABCRO付select ABC所有表的权限,否则会报ORA-00942
参考资料:
具体同义词讲解可参考这篇文章。