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