当前位置:首页 > PHP教程 > PHP总结归纳

Oracle中使用同义词

一、背景 有两个sid:asid,bsid,在asid下有两个用户auser1,auser2,在bsid下有一个用户buser1。其中auser2和buser1建立了dblink。现希望通过登录buser1访问auser1上的三张表table1,table2,table3信息和函数function1。 二、步骤 ①登录auser1对auser2授

  一、背景

  有两个sid:asid,bsid,在asid下有两个用户auser1,auser2,在bsid下有一个用户buser1。其中auser2和buser1建立了dblink。现希望通过登录buser1访问auser1上的三张表table1,table2,,table3信息和函数function1。

  二、步骤

  ①登录auser1对auser2授权(若需要删除则加上delete)

  grant insert,select,update on table1 to auser2;

  grant insert,select,update on table2 to auser2;

  grant insert,select,update 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()。

.syntaxhighlighter{padding-top:20px;padding-bottom:20px;}
【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!