alias(別名),比如把user1.table1在user2中建一個同義詞table1
鎮雄ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
create synonym table1 for user1.table1;
這樣當你在user2中查select * from table1時就相當于查select * from user1.table1;
優點自己總結吧。
例如:
在oracle中對用戶的管理是使用權限的方式來管理的,也就是說,如果我們想使用數據庫,我們就必須得有權限,但是如果是別人將權限授予了我們,我們也是能對數據庫進行操作的,但是我們必須要已授權的表的名稱前鍵入該表所有者的名稱,所以這就是比較麻煩的,遇到這種情況,我們該怎么辦呢?創建個同義詞吧!這樣我們就可以直接使用同義詞來使用表了。
對另一個數據對象而言同義詞是一個別名。public同義詞是針對所有用戶的,相對而言private同義詞則只針對對象擁有者或被授予權限的賬戶。在本地數據庫中同義詞可以表示表、視圖、序列、程序、函數或包等數據對象,也可以通過鏈接表示另一個數據庫的對象。
創建同義詞語法如下:
CREATE [PUBLIC] SYNONYM synonym_name FOR [schema.] object[@db_link];
例:
CREATE PUBLIC SYNONYM policies FOR poladm.policies@prod;
CREATE SYNONYM plan_table FOR system.plan_table;
SELECT * FROM SYS.ALL_SYNONYMS WHERE SYNONYM_NAME='S'.里面有同義詞的表與用戶
1.你可能需要在user用戶中給當前用戶(user2)授權: grant select/delete/update on user2
創建同義詞:
create public synonym table_name for user.table_name;
2.刪除同義詞:
drop public synonym table_name;
3.查看所有同義詞:
select * from dba_synonyms
Oracle的同義詞(synonyms)從字面上理解就是別名的意思,和視圖的功能類似,就是一種映射關系。它可以節省大量的數據庫空間,對不同用戶的操作同一張表沒有多少差別;它擴展了數據庫的使用范圍,能夠在不同的數據庫用戶之間實現無縫交互;Oracle數據庫中提供了同義詞管理的功能。同義詞是數據庫對象的一個別名,經常用于簡化對象訪問和提高對象訪問的安全性。在使用同義詞時,Oracle數據庫將它翻譯成對應方案對象的名字。與視圖類似,同義詞并不占用實際存儲空間,只有在數據字典中保存了同義詞的定義
創建同義詞
CREATE SYNONYM SYSN_TEST FOR TEST;
查看同義詞
SELECT * FROM USER_SYNONYMS
使用同義詞
SELECT * FROM SYSN_TEST;
刪除同義詞
DROP SYNONYM SYSN_TEST;
1.@dblink是你要查詢的同義詞對應的database link。
2.表名是在db link里的表名,不是在你庫中同義詞里的表名,如下圖:不是S_SALES_BLL,而是B_SALES_ALL。
3.表名區分大小寫。PS:表名如果是大寫,你寫小寫,那就查詢結果為空。
一、背景
有兩個sid:Asid,Bsid,在Asid下有兩個用戶Auser1,Auser2,在Bsid下有一個用戶Buser1。其中Auser2和Buser1建立了dblink。現希望通過登錄Buser1訪問Auser1上的三張表table1,table2,table3信息和函數function1。
二、步驟
①登錄Auser1對Auser2授權(若需要刪除則加上)
grant ,select,on table1 to Auser2;
grant ,select,on table2 to Auser2;
grant ,select,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()。
當前文章:如何查同義詞oracle,如何查同義詞近義詞反義詞組詞造句多音多義字字典
分享路徑:http://m.kartarina.com/article42/hdojhc.html
成都網站建設公司_創新互聯,為您提供網站內鏈、App設計、網站排名、商城網站、ChatGPT、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯