日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Oracle同義詞驚喜不斷

導(dǎo)讀:同義詞是數(shù)據(jù)庫(kù)方案對(duì)象的一個(gè)別名,經(jīng)常用于簡(jiǎn)化對(duì)象訪問和提高對(duì)象訪問的安全性。在使用同義詞時(shí),Oracle數(shù)據(jù)庫(kù)將它翻譯成對(duì)應(yīng)方案對(duì)象的名字。與視圖類似,同義詞并不占用實(shí)際存儲(chǔ)空間,只有在數(shù)據(jù)字典中保存了同義詞的定義。在Oracle數(shù)據(jù)庫(kù)中的大部分?jǐn)?shù)據(jù)庫(kù)對(duì)象,如表、視圖、同義詞、序列、存儲(chǔ)過程、函數(shù)、JAVA類、包等等,數(shù)據(jù)庫(kù)管理員都可以根據(jù)實(shí)際情況為他們定義同義詞。通過Oracle數(shù)據(jù)庫(kù)同義詞管理,可以給數(shù)據(jù)庫(kù)管理員與應(yīng)用程序開發(fā)人員帶來不少驚喜。

創(chuàng)新互聯(lián)建站是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

驚喜一:應(yīng)用程序開發(fā)可以不管數(shù)據(jù)庫(kù)的具體對(duì)象名

在應(yīng)用程序中,要不斷的調(diào)用Oracle數(shù)據(jù)庫(kù)的對(duì)象,如表、視圖、對(duì)象等等。為此,在管理軟件開發(fā)的過程中,若應(yīng)用程序已經(jīng)完成了某部分功能的開發(fā)。此時(shí),數(shù)據(jù)庫(kù)管理員若一定需要更改某個(gè)數(shù)據(jù)庫(kù)對(duì)象的命名。那么,此時(shí)應(yīng)用程序也需要調(diào)整。這在實(shí)際工作中,會(huì)很不方便。特別是有些應(yīng)用程序如果提供了功能自定義平臺(tái)的話,會(huì)非常的麻煩。如在一個(gè)ERP軟件中,有報(bào)表自定義功能。在系統(tǒng)中,原來就有一張供應(yīng)商產(chǎn)品明細(xì)表。但是,用戶覺得這張報(bào)表信息不夠齊全。用戶希望能夠顯示出某個(gè)零件所對(duì)應(yīng)的成品。此時(shí),用戶可以更改原有的數(shù)據(jù)庫(kù)對(duì)象來完成這個(gè)自定義。但是,這往往不被建議這么做。因?yàn)槿舨恍⌒男薷腻e(cuò)誤,那么就很難再修改回來。所以自定義平臺(tái)中,若需要對(duì)原有報(bào)表進(jìn)行比較大的變更時(shí),往往建議用戶另外建立一個(gè)視圖,來收集自己所需要的信息。若這么做的話,那么用戶不僅需要定義數(shù)據(jù)庫(kù)對(duì)象,而且還要重新調(diào)整前臺(tái)應(yīng)用程序的報(bào)表格式。顯然這工作量有多大。

而現(xiàn)在有了同義詞功能的話,這一切都會(huì)變得方便。因?yàn)榍芭_(tái)應(yīng)用程序可以不用作調(diào)整,而只需把數(shù)據(jù)庫(kù)對(duì)象同義詞進(jìn)行重新定義即可。這既保障了前臺(tái)應(yīng)用程序的可恢復(fù)性;同時(shí)也降低了工作量。這就是Oracle數(shù)據(jù)庫(kù)同義詞給我們帶來的第一個(gè)驚喜。

驚喜二:避免應(yīng)用程序直接訪問數(shù)據(jù)庫(kù)對(duì)象,提高數(shù)據(jù)庫(kù)安全性

在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的時(shí)候,應(yīng)當(dāng)普遍遵守的一個(gè)規(guī)則是盡量避免直接飲用數(shù)據(jù)庫(kù)的表、視圖、函數(shù)或者其他對(duì)象。因?yàn)檫@會(huì)在很大程度上破壞數(shù)據(jù)庫(kù)的安全性。

如在前臺(tái)應(yīng)用程序中直接調(diào)用數(shù)據(jù)庫(kù)對(duì)象,那么攻擊者只需要對(duì)應(yīng)用程序所引用的對(duì)象進(jìn)行分析,就可以很容易的了解后臺(tái)數(shù)據(jù)庫(kù)的基本邏輯結(jié)構(gòu)。這顯然會(huì)為攻擊者提供很大的便利。所以,為了保障數(shù)據(jù)庫(kù)的安全,前臺(tái)應(yīng)用程序最好通過同義詞來訪問后臺(tái)數(shù)據(jù)庫(kù)。如此的話,攻擊者就很難通過前臺(tái)應(yīng)用程序的調(diào)用,來分析后臺(tái)數(shù)據(jù)庫(kù)的對(duì)象,以及對(duì)象之間的關(guān)系。

驚喜三:簡(jiǎn)化數(shù)據(jù)庫(kù)對(duì)象的訪問

有時(shí)候,我們某個(gè)數(shù)據(jù)庫(kù)對(duì)象的名字可能會(huì)很長(zhǎng),如AD_USER_ROLE_NAME_TRL。若每次調(diào)用這個(gè)數(shù)據(jù)庫(kù)對(duì)象的時(shí)候,都要輸入這么長(zhǎng)的對(duì)象名,肯定會(huì)讓數(shù)據(jù)庫(kù)管理員很頭疼。但是,若名字定義的太短了呢,可讀性就不好。其他一些數(shù)據(jù)庫(kù),只有犧牲可讀性,把數(shù)據(jù)庫(kù)對(duì)象的名字盡量縮短。

不過在Oracle數(shù)據(jù)庫(kù)中,則可以不用這個(gè)煩惱。因?yàn)槲覀兛梢越o這個(gè)數(shù)據(jù)庫(kù)對(duì)象設(shè)置一個(gè)同義詞,就好像別名一樣。如此的話,在訪問的時(shí)候,只需要通過同義詞訪問即可,而不需要輸入這么長(zhǎng)的對(duì)象名。

除了上面三個(gè)應(yīng)用之外,在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,為存儲(chǔ)在遠(yuǎn)程數(shù)據(jù)庫(kù)中的對(duì)象創(chuàng)建同義詞,使用戶可以像使用本地對(duì)象一樣對(duì)遠(yuǎn)程對(duì)象進(jìn)行操作,就不需要提供網(wǎng)絡(luò)連接名進(jìn)行限定了。顯然,這也會(huì)給一些分布式數(shù)據(jù)庫(kù)管理員帶來很大的便利。

Oracle數(shù)據(jù)庫(kù)同義詞有兩種類型,分別是公用同義詞與方案同義詞。

公用同義詞由一個(gè)特殊的用戶組Public所擁有。顧名思義,數(shù)據(jù)庫(kù)中所有的用戶都可以使用公用同義詞。公用同義詞往往用來標(biāo)示一些比較普通的數(shù)據(jù)庫(kù)對(duì)象,這些對(duì)象往往大家都需要引用。在引用這些對(duì)象時(shí),并不需要在其前面添加一個(gè)Public所有者名字作為限定。否則的話,如果在一個(gè)公用同義詞前加上一個(gè)Public,就是畫蛇添足,系統(tǒng)反而會(huì)給出一個(gè)錯(cuò)誤提示。不過在實(shí)際應(yīng)用中,筆者不建議用戶采用公用同義詞。因?yàn)楝F(xiàn)在系統(tǒng)中,公用同義詞已經(jīng)有很多。若用戶仍然為數(shù)據(jù)庫(kù)定義公用同義詞的話,不能夠起到簡(jiǎn)化數(shù)據(jù)庫(kù)對(duì)象訪問的作用。

方案同義詞是跟公用同義詞所對(duì)應(yīng),他是由創(chuàng)建他的用戶或者方案所有。故也被稱為私有同義詞。當(dāng)然,這個(gè)同義詞的創(chuàng)建者,可以控制其他用戶是否有權(quán)使用屬于自己的方案同義詞。方案同義詞經(jīng)常在應(yīng)用程序開發(fā)中使用,為應(yīng)用開發(fā)提供命名上的解決方案。如當(dāng)一個(gè)數(shù)據(jù)庫(kù)對(duì)象,如一張表,被重命名或者被復(fù)制成新的表時(shí),并且新名字與老名字都需要使用的情況下,數(shù)據(jù)庫(kù)管理員就可以使用方案同義詞,即為老名字和新名字都建立專用同義詞,不過他們都同時(shí)指向同一個(gè)數(shù)據(jù)庫(kù)對(duì)象。

其實(shí)創(chuàng)建方案同義詞也很簡(jiǎn)單。不過其必須要有一個(gè)前期條件,就是必須要擁有一定的權(quán)限,如CREATE SYNONYM權(quán)限,若是要在他人的方案中建立同義詞的話,則還必須擁有CREATE ANY SYNONYM權(quán)限等等。這些是必須遵循的首要條件。否則的話,就不能夠建立同義詞。

另外需要注意的是,即使在數(shù)據(jù)庫(kù)對(duì)象不存在的情況下,也可以為預(yù)計(jì)要建立的數(shù)據(jù)庫(kù)對(duì)象設(shè)置同義詞。這個(gè)特性很好用,它可以幫助數(shù)據(jù)庫(kù)開發(fā)團(tuán)隊(duì)或者應(yīng)用程序開發(fā)團(tuán)隊(duì)進(jìn)行更高的協(xié)作。如只要數(shù)據(jù)庫(kù)管理員跟應(yīng)用程序預(yù)先做好對(duì)象的命名與同義詞的定義工作,那么即使數(shù)據(jù)庫(kù)管理員還沒有開發(fā)好某個(gè)數(shù)據(jù)庫(kù)對(duì)象,前臺(tái)應(yīng)用程序開發(fā)人員也可以通過引用同義詞的方式引用為建立的數(shù)據(jù)庫(kù)對(duì)象。如此的話,就不會(huì)因?yàn)槟骋徊焦ぷ鳑]有完成而給其他人的工作帶來什么負(fù)面影響。

在方案同義詞使用的過程中,還需要注意以下幾個(gè)問題。

一是要注意使用自己的方案與他人方案的同義詞方法有一定的差別。當(dāng)用戶在自己的方案內(nèi)建立同義詞后,用戶就有對(duì)象的所有權(quán)限??梢韵袷褂迷瓉淼臄?shù)據(jù)庫(kù)對(duì)象那樣,使用這個(gè)對(duì)象的同義詞。如查詢數(shù)據(jù)、插入修改刪除紀(jì)錄等等。但是,與公用同義詞不同,無(wú)論是否給其他用戶授予如何使用方案同義詞所對(duì)應(yīng)的對(duì)象的對(duì)象權(quán)限,都不能夠使用方案同義詞,因?yàn)橥x詞是私有的。也就是說,如果有一張USER表。用戶A雖然有CREATE ANY SYNONYM權(quán)限,可以為這個(gè)數(shù)據(jù)庫(kù)對(duì)象建立同義詞。但是,其沒有這張表的Select權(quán)限。則用戶A仍然不能夠利用這個(gè)同義詞來訪問這個(gè)數(shù)據(jù)庫(kù)對(duì)象。否則的話,數(shù)據(jù)庫(kù)會(huì)提示“表或者視圖不存在”。若A用戶想要通過同義詞訪問這個(gè)User表的話,則必須擁有這個(gè)表的Select等對(duì)應(yīng)的權(quán)限,才能夠利用同義詞對(duì)這個(gè)表進(jìn)行對(duì)應(yīng)的操作。也就是說,通過自己的方案中創(chuàng)建指向其他方案中的對(duì)象的方案同義詞,只有在被授予了如何訪問對(duì)象的對(duì)象權(quán)限之后,才可以按對(duì)象權(quán)限訪問對(duì)象。另外需要注意,由于方案同義詞是私有的,所以,其他用戶使用自己方案同義詞的話,在任何情況下,即使擁有某個(gè)對(duì)象的相關(guān)權(quán)限,也無(wú)法進(jìn)行訪問。這就是方案同義詞的私有本質(zhì)。

二是要注意Oracle數(shù)據(jù)庫(kù)中的名稱解析順序。如我們通過FROM user 這個(gè)子句訪問某個(gè)表的時(shí)候,數(shù)據(jù)庫(kù)是如何來查詢數(shù)據(jù)庫(kù)中是否存在這個(gè)對(duì)象呢?他是有一定的解析順序的。當(dāng)我們書寫的程序代碼中若引用了一個(gè)未限定的數(shù)據(jù)庫(kù)對(duì)象,如表、視圖、存儲(chǔ)過程等等,數(shù)據(jù)庫(kù)會(huì)根據(jù)一定的順序去查詢是否有被引用的對(duì)象。通常情況下,會(huì)按如下的順序進(jìn)行驗(yàn)證。首先是看看當(dāng)前用戶是否擁有這個(gè)對(duì)象;其次這個(gè)對(duì)象名是否是當(dāng)前用戶擁有的一個(gè)同義詞;最后,才去判斷公用同義詞的情況。所以,在實(shí)際應(yīng)用中,我們數(shù)據(jù)庫(kù)管理員要盡量利用方案同義詞,少用公用同義詞。這對(duì)提高數(shù)據(jù)庫(kù)的運(yùn)行效率還是很有幫助的。

三是數(shù)據(jù)字典視圖就是公用同義詞的一個(gè)好例子。有時(shí)候,我們可以借鑒他的配置來管理我們的公用同義詞與方案同義詞。在實(shí)際工作中,我們也可以預(yù)先把所有的數(shù)據(jù)庫(kù)對(duì)象名設(shè)計(jì)好,并配上所有的同義詞。然后利用腳本進(jìn)行一次性生成。若一個(gè)個(gè)去生成同義詞的話,在其工作量還是蠻大的。

可見Oracle同義詞還是好處多多,希望大家通過本文的學(xué)習(xí)能夠很好的掌握Oracle同義詞,相信這在大家以后的工作中會(huì)很有用的。

【編輯推薦】

  1. 在Oracle數(shù)據(jù)庫(kù)維護(hù)中要做到前瞻性
  2. Oracle訪問Sybase數(shù)據(jù)庫(kù)的方法
  3. Oracle存儲(chǔ)過程簡(jiǎn)單實(shí)例
  4. Oracle權(quán)限管理入門

當(dāng)前標(biāo)題:Oracle同義詞驚喜不斷
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/cceisgp.html