ORACLE-synonym用法場景

遇到眼前事、不會就百度

img

要求如下:對接的部門需要用我們的數據做查詢,原本說好的接口,當我把接口查詢做出來後,文檔也寫完了之後,發給對接部門之後,屁事就來了,又要求分頁、有巴拉巴拉,我可QNMDB。本來對該部門對接就不想弄、原因是之前對接幾張表數據、給我發了400多頁的數據字典word文檔,關鍵是文檔還一點都不清晰。所以導致我一點想給他們弄的心思都沒有。

吐槽歸吐槽、思量下來,給他們建立一個數據庫用戶,只給他們查詢權限,且用戶下面不建立表了,直接將他們所需要的表分享到該用戶下,不需要添加用戶名就可以直接訪問,於是百度了下,oracle裏面也有個叫同義詞/synonyms,網上給的理解是:進行大型系統開發時,往往會涉及到多個子系統的開發。爲了方便開發一般數據庫都會存在同一個數據庫實例中,方便數據共享。這種數據共享的方式在Oracle中叫"同義詞/synonyms"。

😋 這就很讚了:

有兩種方式創建:

第一種:直接新建

1.PL/SQL中的synonyms中右鍵新建

img

2.在彈出synonyms窗口中填寫相關信息

爲了別(害)出(人)心(害)裁(己)同義詞可以取別的不相干的字符

img

3.創建成功,可以在本用戶下直接查詢其他用戶表

img select * from “同義詞表名”

第二種:語句執行

用戶我是新建的:

  1. 所以 先登錄sys或者擁有dba權限用戶,創建用戶B(用戶名)

create user B identified by BB(密碼自行修改);

grant connect to B;

  1. 對用戶B要使用的A表進行授權,使得登錄B用戶可以訪問A的表

​ 所有權限賦予:

    grant all on A.TABLE to B;(此時登錄B用戶,可以使用A用戶的MMC表)。

  單獨權限賦予:

    grant select on A.TABLE TO B; (賦予查詢權限)

我這邊操作的時候只賦予了查詢的權限

  1. 這時候創建同義詞

create synonym B.TABLE for A.TABLE ;

舉個例子:我這邊想把用戶A的XZCF表分享給用戶B。

create synonym B.xz for A.xzxk;

我如果這麼執行的話,那我在用戶B下面查詢的表的時候,只能執行

select * from xz 纔可以查詢的到xzxk表

  1. 刪除同義詞

drop synonym B.TABLE;

  1. 查看所有同義詞

select * from dba_synonyms

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章