日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle synonym 同义词

發布時間:2024/4/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle synonym 同义词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle synonym 同義詞

  1、Oracle synonym 同義詞是數據庫當前用戶通過給另外一個用戶的對象創建一個別名,然后可以通過對別名進行查詢和操作,等價于直接操作該數據庫對象。

  2、Oracle同義詞常常是給表、視圖、函數、過程、包等制定別名,可以通過CREATE 命令進行創建、ALTER 命令進行修改、DROP 命令執行刪除操作。

  3、Oracle synonym 同義詞按照訪問權限分為私有同義詞、公有同義詞。

  4、私有同義詞:私有同義詞只能當前用戶可以訪問,前提:當前用戶具有create synonym 權限。

  5、公有同義詞:公有同義詞只能具有DBA用戶才能進行創建,所有用戶都可以訪問的。

語法結構:

  CREATE [OR REPLACE] [PUBLIC] SYSNONYM [當前用戶.]synonym_nameFOR [其他用戶.]object_name;

解析:

  1、create [or replace] 命令create建表命令一樣,當當前用戶下同義詞對象名已經存在的時候,就會刪除原來的同義詞,用新的同義詞替代上。

  2、[public]:創建的是公有同義詞,在實際開發過程中比較少用,因為創建就代表著任何用戶都可以通過自己用戶訪問操作該對象,一般我們訪問其他用戶對象時,需要該用戶進行授權給我們。

  3、用戶名.object_name:oralce用戶對象的權限都是自己用戶進行管理的,需要其他用戶的某個對象的操作權限,只能通過對象擁有者(用戶)進行授權給當前用戶。或者當前用戶具有系統管理員權限(DBA),即可通過用戶名.object_name操作該對象。

案例分析:

  我們在school用戶下也創建了一張學生信息表(stuinfo),該信息表只存在一個學生信息“張三”。由于我們當前用戶student用戶不具有school.stuino的權限,因此要需要該用戶授權,然后才能訪問。

操作如下:

  1、--未授權之前查詢(提示表不存在,沒有操作權限)select * from school.stuinfo;

  2、--登錄jsq_copy用戶進行授權?conn school/123456;??grant all on stuinfo to student;

  3、--授權后再次查詢該表數據?conn student/123456;??select * from school.stuinfo;?

同義詞創建

  我們現在為school.stuinfo創建同義詞stuinfo_copy,然后通過當前用戶student直接操作同義詞stuinfo_copy查詢school.stuinfo表數據。

  代碼如下:

    create synonym stuinfo_copy for school.stuinfo;

創建同義詞之后,即可使用select *from?stuinfo_copy 進行查詢,效果等同于select *from?school.stuinfo。

同義詞刪除

  同義詞刪除只能通過同義詞擁有者的用戶或者具有DBA權限的用戶才能刪除。

語法結構:

  DROP [PUBLIC] SYNONYM [用戶.]sysnonym_name;

轉載于:https://www.cnblogs.com/sinosoft/p/10767210.html

總結

以上是生活随笔為你收集整理的Oracle synonym 同义词的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。