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

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer與Oracle數(shù)據(jù)庫在安全性上的異同

  前言:Oracle數(shù)據(jù)庫和SQL Server數(shù)據(jù)庫是兩種應用比較普遍的數(shù)據(jù)庫,在業(yè)界,人們普遍認為Oracle數(shù)據(jù)庫的安全性要比SQL Server數(shù)據(jù)庫高,但實際情況Oracle數(shù)據(jù)庫和SQL Server數(shù)據(jù)庫二者又有著怎么的差別,下面筆者就來談談這兩種數(shù)據(jù)庫在安全性設計上面的異同。掌握好這些內容,對于我們進行數(shù)據(jù)庫安全方面的設計與管理,有著舉足輕重的作用。

創(chuàng)新互聯(lián)是一家專業(yè)提供甘南企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、網(wǎng)站建設、外貿網(wǎng)站建設H5頁面制作、小程序制作等業(yè)務。10年已為甘南眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

  一、角色到用戶的授權

  現(xiàn)在很多應用軟件,包括數(shù)據(jù)庫系統(tǒng),都采用了角色到用戶的授權體系。也就是說,先給一個角色進行授權,然后再把用戶加入到這個角色中,讓其擁有這個角色的權限。

  如我們在數(shù)據(jù)庫設計的時候,一般至少需要兩種角色,一種是系統(tǒng)管理員角色,這種角色具有對數(shù)據(jù)庫系統(tǒng)進行管理,如表的建立與刪除、用戶的建立與修改等等。另外一種是普通用戶的角色,其可以對表進行插入、修改、刪除記錄等等的操作。然后,我們建立兩個帳戶,一個是數(shù)據(jù)庫管理員帳戶,讓其隸屬于管理員角色;再建立一個用戶帳號,讓其歸屬于用戶角色。如此,不用給用戶設置特別的權限,他們就從他們的角色中,繼承了相關的權限。這就是基于角色-用戶的權限管理體系。

  這個權限管理體系,兩種數(shù)據(jù)庫都是支持的,只不過具體的叫法有差異。在SQL Sever數(shù)據(jù)庫中,其沿用的是微軟操作系統(tǒng)的叫法,把角色稱做組。其實,我們在給操作系統(tǒng)定義用戶與權限的時候,也是采用這種方法,我們先建立一個組,再給這個組賦予特定的權限,然后,再建立一個用戶帳號加入到這個組中即可。雖然兩個數(shù)據(jù)庫的叫法不同,但是,其本質是一樣的,換湯不換藥而已。

  兩者的差異主要體現(xiàn)在對特定角色的授權方面。

  二、角色的授權

  兩個數(shù)據(jù)庫雖然在“角色-授權” 方面雷同,但在具體角色權限的分配上,還是有比較大的差異。用一句話來總結,就是Oracle在權限的分配上,要比SQL Server數(shù)據(jù)庫細。Oracle在權限控制方面,基本上可以細化到每個步驟。

  如在用戶管理上面,Oracle數(shù)據(jù)庫可以把創(chuàng)建用戶帳號的權利給某個組,但是,這個組卻沒有刪除帳號的權利。而微軟的數(shù)據(jù)庫中,則一般是把用戶管理的權限,包括用戶創(chuàng)建與刪除當作一個權限賦予給某個組,而不能把他們分開。也就是說,一個組若具有用戶帳號管理權限的話,其不僅可以創(chuàng)建用戶帳號,而且,也可以刪除用戶帳號。也就是說,微軟的SQL Server數(shù)據(jù)庫在權限設計上,沒有分得像Oracle那么細。正因為如此,所以Oracle數(shù)據(jù)庫在權限管理上面,要比SQL Server數(shù)據(jù)庫靈活。

  不光在帳戶管理上如此,數(shù)據(jù)庫很多對象權限的管理,也有類似現(xiàn)象。如對于存儲過程的管理,對于表格的管理等等。甲骨文的Oracle數(shù)據(jù)庫在權限劃分上,比其他數(shù)據(jù)庫都要細。

  三、對用戶進行獨立授權

  除了可以根據(jù)角色進行授權,Oracle數(shù)據(jù)庫還可以在用戶帳號的級別上直接跟用戶進行授權。在SQL Server數(shù)據(jù)庫上也有類似的功能,但是,光從這方面說,前者要比后者靈活。如Oracle數(shù)據(jù)庫中具有的“ 對象授權”功能,在SQL Server數(shù)據(jù)庫中就無法實現(xiàn)。

  1、 在用戶口令上,Oracle數(shù)據(jù)庫要比SQL Server數(shù)據(jù)庫安全性更高

  眾所周知,用戶口令與帳號是數(shù)據(jù)庫安全的第一道保障。如在建立Oracle數(shù)據(jù)庫的用戶名的時候,默認情況下,其有密碼復雜性驗證設置。如果我們在建立用戶名的時候,把密碼設置成為“123456”,Oracle數(shù)據(jù)庫不會接受。因為它認為純數(shù)字的密碼過于簡單,容易被破解。而在微軟的SQL Server數(shù)據(jù)庫中,默認情況下沒有這方面的限制。

  2、 用戶建立默認權限不同

  這兩個數(shù)據(jù)庫都可以至少通過兩種方式建立用戶名。一是通過圖形化的界面建立用戶名與帳號。如Oracle數(shù)據(jù)庫可以通過EM,即瀏覽器建立用戶帳號;而SQL Server數(shù)據(jù)庫則可以通過企業(yè)管理器建立用戶帳號。另外一個是可以通過命令行,也就是說,通過SQL 語句建立用戶名。

  從SQL Server數(shù)據(jù)庫來說,這兩種建立方式沒有什么不同。但是,甲骨文的Oracle數(shù)據(jù)庫還是有比較大的差異,主要體現(xiàn)在默認權限的不同。在利用瀏覽器建立用戶帳號的時候,默認就具有連接數(shù)據(jù)庫的權限。而若在命令行中建立用戶帳號,除非你明確給其指定其具有連接數(shù)據(jù)庫的權限,否則的話,這個帳戶是不能連接到數(shù)據(jù)庫的。

  如我們通過命令,建立一個test的用戶,其密碼為test111。

  Create user test identified by test111;

  注意 ,這里設置用戶名密碼的時候,若是純數(shù)字的密碼,則數(shù)據(jù)庫不會接受。

  然后,我們利用如下語句連接到數(shù)據(jù)庫,看看有什么現(xiàn)象。

  Connet test/test111;

  此時,數(shù)據(jù)庫會拒絕這個用戶登陸到數(shù)據(jù)庫,會提示這個用戶沒有連接到數(shù)據(jù)庫的權限。除非,我們再利用如下命令,對用戶進行授權。

  Grant connect to test;

  對用戶名進行授權后,才能夠連接到數(shù)據(jù)庫中去。這一點差異,很多數(shù)據(jù)庫管理員在剛開始接觸數(shù)據(jù)庫的時候,特別是先前有SQL Server數(shù)據(jù)庫使用經驗的人,一般都不容易搞清楚。結果在學習或者使用的時候,會遇到一些麻煩。筆者因為參加過SQL Server數(shù)據(jù)庫管理員的培訓與考試,所以,在后續(xù)使用Oracle數(shù)據(jù)庫的時候,對于這一點當時就有點困惑。現(xiàn)在回頭想想,Oracle大概是基于安全方面的考慮吧。

#p#

  3、 對象授權

  假設現(xiàn)在有如下這種情形。

  現(xiàn)在有個用戶test,其有product表的查詢權限。而另外一個用戶test1不具有這個表的任何訪問權限?,F(xiàn)在,test想把product表的查詢權限賦予test1,讓其也可以查詢數(shù)據(jù)庫中的product表。注意,這里的用戶test只是普通用戶,不是數(shù)據(jù)庫管理員。

  這個需求在SQL Server數(shù)據(jù)庫中,是無法實現(xiàn)的,因為用戶test沒有數(shù)據(jù)庫管理的權限,而只有表查詢的權限,其沒有權利為其他用戶分配這個表的查詢權限的權利。但是,在Oracle數(shù)據(jù)庫中,則通過“對象授權” 的方式,可以實現(xiàn)這個需求。

  第一步:利用系統(tǒng)管理員帳戶,在分配權限的時候,給予“ 對象授權” 的權利。

  如先用系統(tǒng)管理員帳戶登陸到系統(tǒng)中,然后給用戶test查詢表product的權利,并啟用對象授權模式。具體命令如下:

  Grant select on product to test with grant option;

  Grant select on product to test就表示用戶test具有查詢表product的權限;而后面的with grant option則表示對于這個用戶開啟了“ 對象授權” 的模式。以后,test用戶可以把對于表product的查詢權限賦予給其他用戶。

  第二步:利用test用戶登陸,然后賦予test1用戶表prodcut的查詢權限。

  Grant select on product to test1;

  這個語句就是用戶test賦予用戶test1表product的查詢權利。若我們在給test用戶賦予權限的時候,沒有啟用“對象授權”模式,即沒有在后面加入with grant option語句,則在以普通用戶test執(zhí)行這條語句的時候,就會發(fā)生錯誤,提示用戶沒有這個權限。但是,若我們系統(tǒng)管理員在給test用戶分配權限的時候,開啟了“對象授權”的模式,則用戶test就可以賦予用戶test1表查詢的權限。不過,這只是針對于特定的表與特定的操作。如果數(shù)據(jù)庫管理員在分配test用戶權限的時候,只用了“Grant select on product to test with grant option”這個語句,就表示test用戶只能針對表product的查詢權限進行再授權。如,現(xiàn)在test1想把表product-bom的查詢權限賦予給test1的話,數(shù)據(jù)庫服務器就不允許了,因為其沒有這個權利。

  這就是對象授權的功能,雖然其破壞了數(shù)據(jù)庫權限管理的統(tǒng)一性,但是,這也提高了數(shù)據(jù)庫權限設計的靈活性,在大型數(shù)據(jù)庫設計的過程中,經常會被用到。

  除了對表可以進行對象授權之外,還可以對過程、視圖等等也進行對象授權。這里要注意的是,在對象授權的過程中,是需要對每個步驟進行授權。如現(xiàn)在用戶test具有表product記錄查詢、記錄更新、記錄刪除等的權利。但是,其只有表查詢權利的“對象授權”。此時,test用戶就不能夠把這個表的更新、刪除等權利賦予給用戶test1。因為帳戶test對對象進行再授權,只是針對特定的查詢操作。

  另外,除了對象授權之外,Oracle數(shù)據(jù)庫中還有一個“系統(tǒng)授權”的概念。系統(tǒng)授權跟對象授權類似,只是其針對的是系統(tǒng)管理的權限,如帳戶刪除或者新建的操作。需要注意的是,系統(tǒng)授權仍然需要分步驟來進行授權。

以上詳細介紹了SQL Server與Oracle數(shù)據(jù)庫在安全性上的異同,大家對SQL Server數(shù)據(jù)庫與Oracle數(shù)據(jù)庫有了新的認識、新的了解,在以后的工作學習中能更加熟練的掌握和運用SQL Server數(shù)據(jù)庫與Oracle數(shù)據(jù)庫。在涉及到數(shù)據(jù)庫安全方面的設計與管理,我們也能很好的應對。


網(wǎng)頁題目:SQLServer與Oracle數(shù)據(jù)庫在安全性上的異同
當前網(wǎng)址:http://www.5511xx.com/article/cdsjcgi.html