程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> Oracle中使用同義詞

Oracle中使用同義詞

編輯:關於Oracle數據庫

       一、背景

      有兩個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()。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved