您现在的位置是: 皇冠走地盘 > 同义词 >

Oracle中运用同义词介绍

发布日期:2019-03-21
  一、背景
  有两个sid:Asid,Bsid,在Asid下有两个用户Auser1,Auser2,在Bsid下有一个用户Buser1。个中Auser2和Buser1建立了dblink。现希望经由过程登录Buser1访问Auser1上的三张表table1,table2,table3信息和函数function1。
  二、步骤
  ①登录Auser1对Auser2授权(若需要删除则加上)
  grant ,select,on table1 to Auser2;
  grant ,select,on table2 to Auser2;
  grant ,select,on table3 to Auser2;
  grant execute on function1 to Auser2;
  ②登录Auser2建立同义词
  create synonym table1 for Auser1.table1;
  create synonym table2 for Auser1.table1;
  create synonym table3 for Auser1.table1;
  create synonym function1 for Auser1.function1;
  ③登录Buser1查找db_link名(例如查出来的db_link名为mydblink1)
  select username,db_link from user_db_links
  ④建立Buser1的同义词
  create synonym table1 for Auser2.table1@mydblink1;
  create synonym table2 for Auser2.table2@mydblink1;
  create synonym table3 for Auser2.table3@mydblink1;
  create synonym function1 for Auser2.function1@mydblink1;
  ⑤测试
  此时登录Buser1经由过程select * from table1就可以访问table1了。
  三、留心点
  也可以建立procedure的同义词,然则如许履行的过程中不允许commit。假如要提交的话请在如JDBC中commit()。