SQL SERVER的安全問(wèn)題一直是困擾DBA的一個(gè)難題,作為開(kāi)發(fā)者和用戶希望自己的權(quán)限越大越好,最好是SA,而作為DBA希望所有的用戶權(quán)限越小越好,這總是一對(duì)矛盾。一般來(lái)說(shuō),我們會(huì)考慮采用WINDOWS驗(yàn)證模式,建立安全的用戶權(quán)限,改變SQL SERVER TCP/IP的默認(rèn)端口...等安全措施,但很多DBA還是忽略了MSSQL SERVER
服務(wù)的啟動(dòng)賬號(hào),這也是一個(gè)非常值得重點(diǎn)關(guān)注的問(wèn)題。特別是MSSQL SERVER提供了許多操作系統(tǒng)和注冊(cè)表擴(kuò)展存儲(chǔ)過(guò)程,比如:xp_cmdshell, xp_regdeletekey, xp_regdeletevalue 等等。
我們先來(lái)回顧一下MSSQL SERVER執(zhí)行這些擴(kuò)展存儲(chǔ)過(guò)程的步驟。MS SQL SERVER提供的擴(kuò)展存儲(chǔ)過(guò)程使你可以向T-SQL一樣調(diào)用一些動(dòng)態(tài)鏈接庫(kù)的內(nèi)部函數(shù)邏輯,而且這些擴(kuò)展存儲(chǔ)過(guò)程可以包括WIN32和COM的大多數(shù)功能。
當(dāng)關(guān)系
數(shù)據(jù)庫(kù)引擎確定 Transact-SQL 語(yǔ)句引用擴(kuò)展存儲(chǔ)過(guò)程時(shí):
關(guān)系
數(shù)據(jù)庫(kù)引擎將擴(kuò)展存儲(chǔ)過(guò)程請(qǐng)求傳遞到開(kāi)放式
數(shù)據(jù)服務(wù)層。
然后開(kāi)放式
數(shù)據(jù)服務(wù)將包含擴(kuò)展存儲(chǔ)過(guò)程函數(shù)的 DLL 裝載到 SQL Server 2000 地址空間(如果還沒(méi)有裝載)。
開(kāi)放式
數(shù)據(jù)服務(wù)將請(qǐng)求傳遞到擴(kuò)展存儲(chǔ)過(guò)程。
開(kāi)放式
數(shù)據(jù)服務(wù)將操作結(jié)果傳遞到
數(shù)據(jù)庫(kù)引擎。