解讀SQL Server與Oracle數(shù)據(jù)庫在安全性上的異同_Mssql數(shù)據(jù)庫教程
推薦:解析SQL Server三大算法的I/O成本1. Nested Loop Join(嵌套循環(huán)聯(lián)結(jié)) 算法: 其思路相當(dāng)?shù)暮唵魏椭苯樱簩τ陉P(guān)系R的每個元組 r 將其與關(guān)系S的每個元組 s 在JOIN條件的字段上直接比較并篩選出符合條件的元組。寫成偽代碼就是: 代價: 被聯(lián)結(jié)的表所處內(nèi)層或外層的順序?qū)Υ疟PI/O開銷有著非常重
在業(yè)界,普遍認(rèn)為Oracle數(shù)據(jù)庫的安全性要比SQL Server數(shù)據(jù)庫高。下面筆者就來談?wù)勥@兩種數(shù)據(jù)庫在安全性設(shè)計上面的異同。掌握好這些內(nèi)容,對于我們進(jìn)行數(shù)據(jù)庫安全方面的設(shè)計與管理,有著舉足輕重的作用。
一、角色的授權(quán)。
兩個數(shù)據(jù)庫雖然在“角色-授權(quán)” 方面雷同,但在具體角色權(quán)限的分配上,還是有比較大的差異。用一句話來總結(jié),就是Oracle在權(quán)限的分配上,要比SQL Server數(shù)據(jù)庫細(xì)。Oracle在權(quán)限控制方面,基本上可以細(xì)化到每個步驟。
如在用戶管理上面,Oracle數(shù)據(jù)庫可以把創(chuàng)建用戶帳號的權(quán)利給某個組,但是,這個組卻沒有刪除帳號的權(quán)利。而微軟的數(shù)據(jù)庫中,則一般是把用戶管理的權(quán)限,包括用戶創(chuàng)建與刪除當(dāng)作一個權(quán)限賦予給某個組,而不能把他們分開。也就是說,一個組若具有用戶帳號管理權(quán)限的話,其不僅可以創(chuàng)建用戶帳號,而且,也可以刪除用戶帳號。也就是說,微軟的SQL Server數(shù)據(jù)庫在權(quán)限設(shè)計上,沒有分得像Oracle那么細(xì)。正因?yàn)槿绱耍設(shè)racle數(shù)據(jù)庫在權(quán)限管理上面,要比SQL Server數(shù)據(jù)庫靈活。
不光在帳戶管理上如此,數(shù)據(jù)庫很多對象權(quán)限的管理,也有類似現(xiàn)象。如對于存儲過程的管理,對于表格的管理等等。甲骨文的Oracle數(shù)據(jù)庫在權(quán)限劃分上,比其他數(shù)據(jù)庫都要細(xì)。
二、角色到用戶的授權(quán)。
現(xiàn)在很多應(yīng)用軟件,包括數(shù)據(jù)庫系統(tǒng),都采用了角色到用戶的授權(quán)體系。也就是說,先給一個角色進(jìn)行授權(quán),然后再把用戶加入到這個角色中,讓其擁有這個角色的權(quán)限。
如我們在數(shù)據(jù)庫設(shè)計的時候,一般至少需要兩種角色,一種是系統(tǒng)管理員角色,這種角色具有對數(shù)據(jù)庫系統(tǒng)進(jìn)行管理,如表的建立與刪除、用戶的建立與修改等等。另外一種是普通用戶的角色,其可以對表進(jìn)行插入、修改、刪除記錄等等的操作。然后,我們建立兩個帳戶,一個是數(shù)據(jù)庫管理員帳戶,讓其隸屬于管理員角色;再建立一個用戶帳號,讓其歸屬于用戶角色。如此,不用給用戶設(shè)置特別的權(quán)限,他們就從他們的角色中,繼承了相關(guān)的權(quán)限。這就是基于角色-用戶的權(quán)限管理體系。
這個權(quán)限管理體系,兩種數(shù)據(jù)庫都是支持的,只不過具體的叫法有差異。
在SQL Sever數(shù)據(jù)庫中,其沿用的是微軟操作系統(tǒng)的叫法,把角色稱做組。其實(shí),我們在給操作系統(tǒng)定義用戶與權(quán)限的時候,也是采用這種方法,我們先建立一個組,再給這個組賦予特定的權(quán)限,然后,再建立一個用戶帳號加入到這個組中即可。雖然兩個數(shù)據(jù)庫的叫法不同,但是,其本質(zhì)是一樣的,換湯不換藥而已。
兩者的差異主要體現(xiàn)在對特定角色的授權(quán)方面。
三、對用戶進(jìn)行獨(dú)立授權(quán)。
除了可以根據(jù)角色進(jìn)行授權(quán),Oracle數(shù)據(jù)庫還可以在用戶帳號的級別上直接跟用戶進(jìn)行授權(quán)。在SQL Server數(shù)據(jù)庫上也有類似的功能,但是,光從這方面說,前者要比后者靈活。如Oracle數(shù)據(jù)庫中具有的“ 對象授權(quán)”功能,在SQL Server數(shù)據(jù)庫中就無法實(shí)現(xiàn)。
1、 在用戶口令上,Oracle數(shù)據(jù)庫要比SQL Server數(shù)據(jù)庫安全性更高。
眾所周知,用戶口令與帳號是數(shù)據(jù)庫安全的第一道保障。如在建立Oracle數(shù)據(jù)庫的用戶名的時候,默認(rèn)情況下,其有密碼復(fù)雜性驗(yàn)證設(shè)置。如果我們在建立用戶名的時候,把密碼設(shè)置成為“123456”,Oracle數(shù)據(jù)庫不會接受。因?yàn)樗J(rèn)為純數(shù)字的密碼過于簡單,容易被破解。而在微軟的SQL Server數(shù)據(jù)庫中,默認(rèn)情況下沒有這方面的限制。
2、 用戶建立默認(rèn)權(quán)限不同。
這兩個數(shù)據(jù)庫都可以至少通過兩種方式建立用戶名。一是通過圖形化的界面建立用戶名與帳號。如Oracle數(shù)據(jù)庫可以通過EM,即瀏覽器建立用戶帳號;而SQL Server數(shù)據(jù)庫則可以通過企業(yè)管理器建立用戶帳號。另外一個是可以通過命令行,也就是說,通過SQL 語句建立用戶名。
分享:怎樣利用SQL Server 2005中的模板參數(shù)如果你用SQL Server 2005 Management Studio建立函數(shù)或存儲過程,你會注意到這些新窗口中都是模板。通常,你可以獲得一個散布著標(biāo)記的框架。 列表A是一個通過擴(kuò)張對象瀏覽器(object explorer)中可編程性節(jié)點(diǎn)而建立的實(shí)例,選擇存儲過程,然后右擊并選擇新的
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實(shí)例詳解
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-解讀SQL Server與Oracle數(shù)據(jù)庫在安全性上的異同
。