隨著數(shù)據(jù)庫系統(tǒng)被用作網(wǎng)絡(luò)應(yīng)用程序后臺存儲范圍的持續(xù)擴(kuò)大,對安全的關(guān)注也就越來越必要。雖然從發(fā)展的角度來看,圍繞在SQL Server 2005的周圍的還有不少的雜音,但是微軟的囊括了很多優(yōu)秀的新特性的數(shù)據(jù)管理系統(tǒng)還是可以幫助開發(fā)人員和數(shù)據(jù)庫管理員鎖定數(shù)據(jù)庫系統(tǒng),保護(hù)對敏感數(shù)據(jù)的訪問。


 以下是一個高層列表,沒有特定的順序,列出了SQL Server 2005中大概10個最顯著的安全加強(qiáng)。要按照重要性來進(jìn)行排序是困難的,因為每個數(shù)據(jù)庫管理員都有不同的需要。


 目錄表


 模擬(Impersonation)


 表面區(qū)域配置工具(Surface Area Configuration tool)


 用戶-計劃分離(User-schema separation)


 粒度權(quán)限集合(Granular permission sets)


 密碼策略(Password policies)


 加密(Encryption)


 受限元數(shù)據(jù)可見度(Limited metadata visibility)


 安全分類視圖(Security catalog views)


 數(shù)據(jù)定義語言觸發(fā)器(DDL triggers)


 Windows用戶信任映射(Mapping Windows user credentials)


 模擬(Impersonation )


 模擬,或者是執(zhí)行環(huán)境上下文交換,指的是臨時交換一個連接的安全設(shè)置的過程,為的是獲得對資源的訪問。這對于采用了最小權(quán)限設(shè)計的系統(tǒng)特別重要。假設(shè)用戶只有盡可能最小的對資源的權(quán)限,并且在必要的時候使用模擬來有選擇的提高權(quán)限,這樣做可以幫助減少整體的暴露。


 在SQL Server 2005中,EXECUTE AS 和 SETUSER 是用來控制背景環(huán)境交換的。要獲得更有有關(guān)這些語句的信息,查看《A First Look at SQL Server 2005 for Developers》的摘要。


 表面區(qū)域配置工具(Surface Area Configuration tool)


 SQL Server 2005是一個大的產(chǎn)品??大到可以包括了許多新的特性,因此潛在地,它也可以處于安全的目的用作向量。為了防止這類事件,要能夠容易快捷地看到每個特性的狀態(tài)??還有配置??是非常重要的。如果一個特性沒有用于數(shù)據(jù)庫支持的應(yīng)用,為了防止濫用的可能性,就應(yīng)該將其失效。


 表面區(qū)域配置工具是SQL Server 2005提供的,允許數(shù)據(jù)庫管理員從單個地點(diǎn)管理多個外部資源的工具。類似CLR集成,SQL 郵件和本地XML網(wǎng)絡(luò)服務(wù)的特性都可以用這個工具進(jìn)行配置。雖然每個特性都可以使用T-SQL 進(jìn)行配置,但是表面區(qū)域配置工具提供了一種方便使用的圖形化用戶界面。


 要了解有關(guān)這個工具的更多信息,請到Developer.com 上查看《管理SQL Server 2005的表面區(qū)域》這篇文章。


 用戶計劃分離(User-schema separation)


 在SQL Server 2005中,數(shù)據(jù)庫中的對象沒有必要再被一個用戶擁有。相反,他們可以包含在一個計劃中,一個可以被賦予權(quán)限的邏輯容器。這個分離的意思是當(dāng)一個對象突然崩潰的時候可以給用戶分配多個對象的權(quán)限,而不是像SQL Server以前的版本中,數(shù)據(jù)庫管理員每次只能分配一個。此外,從數(shù)據(jù)庫中刪除用戶也不再意味著他們擁有的對象必須被刪除或者重新分配。


 要了解更多有關(guān)計劃的信息,查看我的tip《SQL Server 2005中的權(quán)限》。


 粒度權(quán)限集合(Granular permission sets)


 在SQL Server以前的版本中,假設(shè)需要訪問服務(wù)器資源的時候,數(shù)據(jù)庫管理員幾乎沒有選擇。當(dāng)把整個的權(quán)限配置歸結(jié)為一個嚴(yán)格的“固定的服務(wù)器角色”集合的時候,看起來似乎就不能完美地適合任何一個環(huán)境了。例如,不可能給開發(fā)人員權(quán)限來運(yùn)行Profiler 追蹤的時候,不給同一個人訪問服務(wù)器上所有其他資源的權(quán)力。


 幸運(yùn)的是,這些固定的角色在SQL Server 2005中不再必要了,感謝新的粒度權(quán)限集合特性?,F(xiàn)在每次給一個人實(shí)際地分配訪問每個服務(wù)器資源的權(quán)限成為可能。用戶可以被賦予訪問任何資源的權(quán)限組合??或者僅僅是某項資源。系統(tǒng)像數(shù)據(jù)庫管理員期望的那樣靈活。


 要獲得有關(guān)粒度權(quán)限的更多信息,也可以閱讀我的tip《SQL Server 2005中的權(quán)限》。


 密碼策略(Password policies)


 當(dāng)安裝在Windows Server 2003系統(tǒng)上的時候,SQL Server 2005可以采用操作系統(tǒng)的密碼策略登錄SQL Server。它轉(zhuǎn)換為更加安全的密碼,減少了發(fā)生在數(shù)據(jù)庫服務(wù)器上的暴力攻擊的機(jī)會。SQL Server 2005不但支持密碼復(fù)雜度規(guī)則(確保最小長度,加強(qiáng)字母和數(shù)字字符的組合,等),還支持密碼過期策略(確保古老的密碼必須被修改)。


 要使用這些特性,數(shù)據(jù)庫管理員們可以使用ALTER LOGIN語句來設(shè)置CHECK_POLICY 和CHECK_EXPIRATION 選項。


 加密 (Encryption)


 大多數(shù)的存儲了敏感數(shù)據(jù)的數(shù)據(jù)庫都使用了加密技術(shù)來確保數(shù)據(jù)的安全。直到現(xiàn)在,這樣的技術(shù)還只是在應(yīng)用層實(shí)現(xiàn),通過類似微軟的Base Cryptographic Provider的技術(shù)。


 SQL Server 2005通過自帶的暴露加密技術(shù)減少了基于應(yīng)用進(jìn)行加密的需求?,F(xiàn)在,數(shù)據(jù)庫管理員和開發(fā)人員能夠建立一個證書庫,創(chuàng)建對稱或者不對稱的密鑰,并使用不同的算法,其中包括三層DES(數(shù)據(jù)加密標(biāo)準(zhǔn)),RC4和AES(高級加密標(biāo)準(zhǔn))。


 加密是一個很大的話題。要獲得更多有關(guān)SQL Server 2005 在這個領(lǐng)域內(nèi)的貢獻(xiàn)的信息,查閱《Database Journal》中的文章《SQL Server 2005安全??第三部分 加密》。


 受限元數(shù)據(jù)可見度(Limited metadata visibility)


 在SQL Server的早期版本中,元數(shù)據(jù)沒有基于訪問控制機(jī)制的保護(hù)措施。用戶也許不能從某個特定的表中查詢數(shù)據(jù),但是他仍然可以通過類似sysobjects的系統(tǒng)表或者INFORMATION_SCHEMA視圖,例如INFORMATION_SCHEMA.TABLES,看到這個表的存在。


 SQL Server 2005的數(shù)據(jù)庫管理員們現(xiàn)在不需要擔(dān)心以下的任何事情:數(shù)據(jù)庫系統(tǒng)的分類視圖(包括兼容性視圖和INFORMATION_SCHEMA視圖)現(xiàn)在都被保護(hù)起來,用戶只能看到他們能夠訪問的對象。這對于擔(dān)心數(shù)據(jù)安全的數(shù)據(jù)庫管理員們,和那些不想看到他們不能訪問的資源的用戶都有好處。


 要獲得更多有關(guān)SQL Server 2005的分類視圖的信息,請閱讀我的tip《向SQL Server 2005中的系統(tǒng)表說再見》。


 安全分類視圖(Security catalog views)


 在保護(hù)那些包含數(shù)據(jù)庫對象(在前面項目中描述的)的信息的分類視圖的安全之外,SQL Server 2005還包含了一系列的綜合視圖,允許數(shù)據(jù)庫管理員快速獲得有關(guān)訪問權(quán)限的信息。


 龐大的sys.database_permissions 視圖包含了某個數(shù)據(jù)庫中有關(guān)所有準(zhǔn)予的權(quán)限的信息。這個視圖顯示數(shù)據(jù)的粒度與應(yīng)用權(quán)限的粒度在同一個檔次上,這樣數(shù)據(jù)庫管理員要決定誰可以訪問什么就很容易了。有一個類似的視圖,sys.server_permissions ,包含了服務(wù)器級別的權(quán)限的信息。


 其他的安全視圖包含了有關(guān)法則、角色和與加密相關(guān)的數(shù)據(jù)信息。查看SQL Server 2005 的在線書籍以了解更多有關(guān)這些視圖的信息。


 數(shù)據(jù)定義語言觸發(fā)器(DDL triggers)


 SQL Server 數(shù)據(jù)庫管理員很早就開始意識到了使用觸發(fā)器在數(shù)據(jù)操縱操作中嵌入基于事件的邏輯的威力。所謂的數(shù)據(jù)操縱語言(DML)觸發(fā)器在幾年前的產(chǎn)品就存在了。


 現(xiàn)在,同樣的能力擴(kuò)展到了數(shù)據(jù)定義語言(DDL)語句中。數(shù)據(jù)庫管理員可以編寫服務(wù)器或者數(shù)據(jù)庫級別的觸發(fā)器來監(jiān)控類似創(chuàng)建或者刪除表,增加服務(wù)器登錄或者修改數(shù)據(jù)庫的事件。從安全和審計的角度來看,這些觸發(fā)器的價值都是無法衡量的?,F(xiàn)在,數(shù)據(jù)庫管理員可以非常輕松地編寫自動記錄日志的觸發(fā)器來捕捉發(fā)生的事件。


 要了解有關(guān)SQL Server 2005 數(shù)據(jù)定義語言觸發(fā)器的信息,查閱Developer.com 上的文章《使用數(shù)據(jù)定義語言觸發(fā)器來管理SQL Server 2005》。


 Windows用戶信任映射(Mapping Windows user credentials)


 在SQL Server 2005 里面,用來訪問外部資源的登錄再也不需綁定到SQL Server服務(wù)賬戶的訪問權(quán)限上。數(shù)據(jù)庫管理員可以使用新的語句,CREATE CREDENTIAL來創(chuàng)建一個可以映射到一個或者多個登錄的訪問點(diǎn)。


 當(dāng)使用需要訪問外部資源的SQLCLR模塊或者SQL Server 代理任務(wù)工作的時候,這種新的方式帶來了更大的靈活性。例如,如果一個SQL Server 代理任務(wù)需要訪問一個遠(yuǎn)程文件以徹夜導(dǎo)入數(shù)據(jù),SQL Server 服務(wù)賬戶再也不需要擁有瀏覽遠(yuǎn)程服務(wù)器以檢索文件的權(quán)限了。


 總結(jié)


 通過使用SQL Server 2005中的新的安全特性,數(shù)據(jù)庫管理員和開發(fā)人員可以創(chuàng)建更加靈活和更不易于攻擊的數(shù)據(jù)庫應(yīng)用程序。當(dāng)安全在我們的信息受到困擾的社會中變得越來越重要的時候,數(shù)據(jù)庫專業(yè)人員們就需要更多的工具來抵御這些威脅。SQL Server 2005用這些,以及其他的加強(qiáng)的安全措施迎接了這個挑戰(zhàn)。

分享到

多易

相關(guān)推薦