Oracle資料庫訪問其他使用者下的表,不加表所屬的使用者名稱的實現方法

來源:互聯網
上載者:User

標籤:資料   test   好的   alt   解決   use   show   關閉   back   

一. 問題:

如何?在Oracle資料庫中訪問其他使用者的表時不需加表所屬的使用者名稱

二. 舉例:

Oracle裡面的使用者A,要訪問使用者B的表需要帶使用者B的首碼,如訪問使用者B的 TEST表,需要這樣訪問 select * from B.TEST;現在就是問如何才能無需添加使用者名稱的首碼。

三. 原因:
  1. 方便訪問常用表
  2. 隱藏表的使用者
四. 解決方案:1. 建立同義字(最好的方式)

文法:

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

根據舉例進行延伸示範:

 (1)登入sysdba為使用者B授予建立同義字的操作許可權:    sqlplus /nolog     conn /as sysdba;     grant create synonym to B;            (2)登入B使用者為A授予訪問特定表TEST的許可權:    //注意:這是A使用者能夠使用同義字訪問B的TEST表的前提    grant select on TEST to A;    //撤銷的方式:    revoke select on TEST from A; (3)建立同義字    create synonym SY_TEST for B.TEST; (4)登入使用者A進行測試.
2.建立視圖(這個方法也不錯)
    create view VW_TEST select * from B.TEST;
3.修改current_schema參數

用於切換當前會話的架構(schema)。在進行對象名解析時,如果對象名前沒有限定架構名,oracle 會自動在此架構下查詢匹配的對象。

例如,當 scott 使用者執行select * from emps;語句時,oracle 預設會查詢 scott 架構下的 emps 表;但是,如果alter session set current_schema=xx;更改了會話的當前架構,執行此語句時 oracle 會查詢 xx 架構下的 emps 表。

        登入使用者A時,臨時修改current_schema參數:            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;

這種方式只是適用於當前一次會話,一旦會話關閉,下次就不行了.所以此種方式一次可行,但是通用不行.




Oracle資料庫訪問其他使用者下的表,不加表所屬的使用者名稱的實現方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.