Oracle數(shù)據(jù)庫訪問其他用戶下的表,不加表所屬的用戶名的實(shí)現(xiàn)方法

一. 問題:

如何實(shí)現(xiàn)在Oracle數(shù)據(jù)庫中訪問其他用戶的表時(shí)不需加表所屬的用戶名

二. 舉例:

Oracle里面的用戶A,要訪問用戶B的表需要帶用戶B的前綴,如訪問用戶B的 TEST表,需要這樣訪問 select * from B.TEST;現(xiàn)在就是問如何才能無需添加用戶名的前綴。

三. 原因:

  1. 方便訪問常用表
  2. 隱藏表的用戶

四. 解決方案:

1. 創(chuàng)建同義詞

語法:

  CREATE [PUBLIC] SYNONYM synonym_name FOR [schema.] object[@db_link];````

根據(jù)舉例進(jìn)行延伸演示:

   (1)登錄sysdba為用戶B授予創(chuàng)建同義詞的操作權(quán)限:
      sqlplus /nolog 
      conn /as sysdba; 
      grant create synonym to B;       
   (2)登錄B用戶為A授予訪問特定表TEST的權(quán)限:
      //注意:這是A用戶能夠使用同義詞訪問B的TEST表的前提
      grant select on TEST to A;
      
      //撤銷的方式:
      revoke select on TEST from A;
   (3)創(chuàng)建同義詞
      create synonym SY_TEST for B.TEST;
   (4)登錄用戶A進(jìn)行測試.
#####2.創(chuàng)建視圖
      create view VW_TEST select * from B.TEST;
#####3.修改current_schema參數(shù)
用于切換當(dāng)前會(huì)話的架構(gòu)(schema)。在進(jìn)行對象名解析時(shí),如果對象名前沒有限定架構(gòu)名,oracle 會(huì)自動(dòng)在此架構(gòu)下查詢匹配的對象。

例如,當(dāng) scott 用戶執(zhí)行```` select * from emps; ````語句時(shí),oracle 默認(rèn)會(huì)查詢 scott 架構(gòu)下的 emps 表;但是,如果```` alter session set current_schema=xx; ````更改了會(huì)話的當(dāng)前架構(gòu),執(zhí)行此語句時(shí) oracle 會(huì)查詢 xx 架構(gòu)下的 emps 表。
    登錄用戶A時(shí),臨時(shí)修改current_schema參數(shù):    
    SQL> alter session set current_schema=B;

    Session altered.

    SQL> show user;
    USER is "A"
    SQL> select SYS_CONTEXT('USERENV','CURRENT_SCHEMA') CURRENT_SCHEMA from dual;

    CURRENT_SCHEMA                                                                  
    --------------------------------------------------------------------------------
    B                                                                        

    SQL> 
    SQL> spool off;
這種方式只是適用于當(dāng)前一次會(huì)話,一旦會(huì)話關(guān)閉,下次就不行了.所以此種方式一次可行,但是通用不行.





       
       
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容