由于多種原因,進行安全設置的人們常常不理解數據的真正價值,所以,他們也無法對數據進行合適的保護。將你的數據只限于需要的人訪問,并保證訪問的人的合法性,是一個數據庫管理人員的重要工作。然而,確保數據可以訪問不是意味著數據向所有人公開,相反的,你必須很仔細地保護數據,并只對需要使用數據的人進行開放。
設置安全性過程
通用的軟件維護和數據庫更新都會對系統安全起著重要作用,通常包括以下步驟:
分配一個可靠的密碼給缺省的系統管理(sa)帳號。然后,建立自己唯一命名的帳號,并將這一帳號放入sysadmin。一定要確認新帳號也有一個可靠的密碼。
將獨立的密碼分配給每一個用戶。更好的,使用windows集成安全性,并讓windows遵循穩定密碼規則。
決定哪些用戶需要查看數據,然后分配合適的許可。請不要隨便賦予用戶各種權限。例如不要把每一個人的工資隨便讓其他人訪問。
決定哪些用戶需要更新數據,然后分配合適的許可。帳號管理人員應該可以查看所有用戶的信息,但程序員一定要限制更新這些信息的權限。特別的,只有負責特定帳號的管理者是唯一可以更改用戶數據的人。 
通過這些系列信息你可以學會很多知識,但你應該從開始就具備這些觀點。否則,數據庫的任何用戶就可以偷竊或刪除你的重要數據。
什么東西最容易發生錯誤?
對于記錄,應該知道sql server并非絕對安全的。你應該提出一些想法并努力有效地保護你的服務器。在安裝服務器之前有兩點你必須完成的:
設置管理人員的帳號和密碼。
保護系統防止受到slammer worm的感染。
使一些特殊的東西安全化
sql server2000通過sa帳號而具有缺省的安全設置。在安裝過程中,sql server自動建立一個管理的用戶,并分配一個空白密碼給sa用戶名稱。一些管理人員喜歡將sa密碼設置為空白或者一個通用的密碼以便每一個人都能知道。如果你犯這樣的錯誤,進入你的數據庫的任何人都可以為所欲為。具備管理者允許的任何人也可以做任何想做的事——不僅僅是數據庫,而是整個計算機。所以,必須限制用戶根據他們的需要進行訪問數據庫,不要給他們權利太少,也不能太多。
暫且把每一天管理的sa帳號放在一邊,讓我們看看帶有安全密碼的帳號。建立另一帳號以便管理(或者是一個sql server帳號或者是一個windows帳號,取決于你的認證模式)。你所要避免的是太容易地猜到帳號名稱或者帳號密碼,因為任何人得到這些帳號,這就完蛋了。
一個引起警戒的壞事—slammer worm(slammer蠕蟲)
2003年1月份出現了一些非常致命的惡意代碼,即為slammer worm。這一代碼專門針對于sql server的安裝進行攻擊。通過利用sql servera代碼中的缺欠,蠕蟲能夠在sql server安裝的時候復制本身程序而損壞整個機器和其他機器。蠕蟲生成時以15秒可以充滿網絡。微軟已經花了很大力量來阻止這一蠕蟲,但是蠕蟲還是無法完全消除。有些人開始抱怨sql server的測試版本的原因,因為是它在安裝時導致了系統的損壞。
很多月份已經過去了,有必要還要對蠕蟲那么警惕嗎?回答是肯定的。因為每一天還有很多slammer的復制而感染機器。如果一個沒有任何補丁的sql server連接到網絡,你將會變成這一行為的犧牲品。從道德上而言,在將sql server與網絡線連接之前,必須保護你的服務器,并運行所有的新服務補丁。
服務補丁的重要性
服務補丁在下載時是免費的。slammer沒有損壞你的數據,但它可以導致服務器的很多破壞,其危害是明顯的。保護數據最簡單的方法是下載service pack 3 或者service pack 3a。
蠕蟲如何工作這一方面的知識并不是重要,重要的是蠕蟲在微軟的補丁發布以后還可以生存6個月。被蠕蟲感染的商業系統通常有兩個原因:一是管理人員沒有很有效的保護好系統,二是蠕蟲本身太厲害。
你應該注意到,sql server sp3也是無法保證它能夠保持全部的數據。你應該實時監控microsoft's security bulletin(微軟安全公告)以保證處于被服務補丁通知的狀態。
選擇一個認證模式
在 sql server安裝過程中有一個必須決定的是選擇安全認證模式。這里有兩種模式:
windows認證模式(也叫集成模式) 
混合模式 
windows認證模式用戶通過使用一個現成的windows用戶帳號連接到sql服務器。當用戶使用一個合法用戶名和密碼連接到服務器時,sql server就確認用戶的注冊信息。結果是用戶只是在windows和sql server中注冊,帳號信息被windows嚴格的存儲。
混合模式是windows認證和sql server認證的結合。在混合模式中,一些用戶可以繼續使用windows帳號來訪問sql server,但其他只能使用與windows帳號完全不關聯的sql server用戶帳號。每一個sql server帳號都存放其用戶名和密碼。如果這些注冊值相同,用戶必須輸入兩次——一次是windows輸入,另一次是sql server輸入。
 
windows認證比混合模式更優越,原因在以下:
它比sql server認證提供更多的特性。 
很多管理人員都認為windows認證比較容易執行和使用。
使用windows認證,不需要將密碼存放在連接字符串中。
windows認證意味著你只需要將密碼存放在一個地方。 
 
不幸的是,windows認證并不是每一個人都能夠使用的。混合模式必須在sql server 7.0中運行,而windows認證只能在sql server2000中使用。還有其他的一些環境,windows認證無法運行,因為無法獲得垮平臺的相互信任。在這種情況下,,你只能使用混合模式和sql server注冊。
其他安裝技巧
在安裝sql server時,還在其他一些技巧值得注意。
使用tcp/ip作為sql server的網絡庫。這是微軟推薦使用的庫,是經受考驗的。如果服務器將與網絡連接,使用非標準端口會被一些別有用心的人破壞。
使用一個低級別的帳號來運行sql server,而不是一個管理帳號。這對系統崩潰的時候起著保護作用。
不要允許未獲得安全許可的客人訪問任何包括安全數據的數據庫。
將數據庫保護于一個“被鎖的房間”。記住,很多騷擾都是來自于內部的人。
總結
從開始就要對數據進行安全保護措施。為了防止有意或無意的破壞,你應該保護你的數據。學會建立安全模型,并運用它。讓安全噩夢遠離你,高枕無憂的工作。
新聞熱點
疑難解答