台灣最大程式設計社群網站
線上人數
2644
 
會員總數:245250
討論主題:189111
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> SQL Server 2005資料庫安全管理秘訣
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL Server 2005資料庫安全管理秘訣
價值 : 0 QP  點閱數:4116 回應數:0

樓主

顧武雄
門外漢
0 4
16 0
發送站內信

作者:顧武雄, Microsoft MVP、MCITP與MCTS認證專家、台灣微軟Technet、TechEd、Webcast、MVA特約資深顧問講師,讀者可以透過他的Facebook與他聯絡。


資料庫備份實施計畫

企業中對於任何應用系統的導入,在後端的資料庫備份工作部份被視為最重要的一項執行計畫,然而的確也只要落實這一項工作才能夠使企業在e化運作的過程中,將所有可能因資料流失所造成的資安風險降到最低。在本章節的內容中您將可以學習到最簡易與最快速的備份管理技巧。
對於一位IT工作者來說在平日有關於SQL Server的維護工作項目中,應以資料庫的備份與伺服器備援計畫的實行最為重要,而前者又比後者來的更重要,這是因為使用者的連線存取或許可以因自然災害而中斷,可是卻不能接受因災害的發生所導致資料的完全流失。接下來就讓我們一同來了解一下有關於SQL Server 2005中對於個別資料庫的備份方法與策略。


圖1 設定復原模式

由於在SQL Server 2005的資料庫備份管理中,資料庫復原模式的設定會影響備份作業的執行,因此請開啟指定資料庫的屬性內容中切換到如圖1所示的[選項]頁面上,接著筆者針對這三類型的復原模式設定用途分別介紹如下:

[*]簡易(Simple):只要確認交易資料已正確寫入,便會清除交易記錄。
[*]大量記錄(Bulk-logged):凡是透過各種大量匯入資料的方式所完成的異動,相關記錄都不會被保存。
[*]完整(Full):保留所有執行過的交易命令在記錄檔案中。



圖2 建立備份裝置

在一個備份維護計畫的排程工作中備份裝置的建立並非是必須的,不過透過它預先的建立確有助於後續備份與還原的管理,因為它可以讓我們將相同資料庫的備份資料寫入到一個自訂的備份裝置的檔案中,甚至於是將相同資料庫但不同的備份計畫寫入到各自不同命名的備份裝置檔案中,如此一來便有助於IT人員在往後的管理中易於識別備份項目,未來縱使要將這一些備份裝置還原到其它SQL Server主機上也將簡單許多。

請在[伺服器物件]節點下的[備份裝置]按下滑鼠右鍵點選[新增備份裝置],此時便會出現如圖2所示視窗,請先輸入一個易於識別這一項備份裝置用途的名稱(可輸入中文),至於目的地的設定如果有在本機安裝磁帶裝置則可以直接指定,否則請選擇適當的檔案位置即可,這樣在後續的資料庫備份中,便可以讓特定的資料庫備份寫入到這一個指定的備份裝置上。

請注意!盡可能不要採用預設的儲存路徑或是系統開機的路徑,以確保備份檔案的安全與後續集中管理上的方便。

關於備份磁帶與磁碟結合的使用經驗
根據筆者自身在備份管理上的經驗中,強烈建議IT人員不要直接把料庫的備份作業裝置採用磁帶設備或是網路共用位置,前者為了避免因連接失敗所導致資料備份的失敗以及在備份效能上的不佳,而後者則同樣是為了避免可能因網路存取上的失敗所造成的問題。無論如何備份檔案的最佳路徑就是本機中非系統磁碟的路徑,緊接著您便可以透過[附屬應用程式]\[系統工具]下的[排定的工作]來進行第二段的異機備份設定,也就是將前面所完成備份的檔案透過此工具在備份到不同的網路位置。


圖3 設定作業類別目錄

在往後的管理中您可能有許多不同資料庫的各類維護作業需要在相同的SQL Server 2005主機上來執行,因此如果可以一開始建立這一些維護作業的同時就一併將它們進行不同需求目標的歸類,也將會有助於IT人員在管理與檢視上更加簡易。

請展開[SQL Server Agent]節點下的[作業]項目上,按下滑鼠右鍵點選[管理作業類別目錄],接下來您便可以在[本機作業類別目錄]的清單中看到許多系統預設的類別項目,此刻建議您點選[加入]按鈕來新增一些自訂的類別項目,例如像圖3所示筆者所新增的[備份管理],如此一來在後續的備份作業的工作設定上,便可以將這一些工作指定歸類到這個類別上。


圖4 設定備份類型

請在點選所要進行備份的資料庫上按下滑鼠右鍵選擇[工作]\[備份],如圖4所示接著便可以在[一般]頁籤中,除了會看到有關備份元件的選擇之外,也會看到備份的類型選擇,在此分別針對這一些不同的備份用途說明如下:

[*]完整備份(Full):此備份的資料內容將包含所有其下的資料庫物件,以及交易內容,由於資料完整是備份設定最常使用的,不過隨著資料的不斷增長,相對所需花費的時間也會越長。
[*]差異性備份(Differential):根據上一次執行完整備份之後,所進行過的資料異動部份來進行備份,因此備份所需花費時間的長短需依這之間的間隔時間來計算,此外還必須注意此種備份方式無法使用在master系統資料庫之上。
[*]交易記錄備份(Transaction Log):想要使用此類型的備份方式,在資料庫復原選項的設定中必須設定為Full或Bulk-logged而非Simple。它與前兩者備份方式的最大不同,在於它除了會將使用者所執行過的異動命令全部備份起來,並且會記錄下這一次備份開始執行時的所有交易狀態。
[*]檔案與檔案群組備份(File and filegroups):顧名思義這一種備份方式只是針對特定的資料庫檔案或檔案群組來進行備份而已,由於並非備份整個資料庫因此時間上相對的會節省許多,不過在選擇備份來源的過程中,務必注意到所有可能橫跨多個檔案或檔案群組的資料庫物件。


在上述的[一般]備份目的地設定中,您可以點選[加入]按鈕來臨時指定備份的路徑,或是選取先前我們所建立的備份裝置。

關於資料庫的備份方式與排程設計,可依照資料庫資料異動的頻率與其重要性來進行規劃,一般性的資料庫可以一天設定兩次完整備份在中午與半夜,而對於像是ERP方面的資料庫,則可以採用備份排程較為密集的[交易記錄檔備份]。接下來我們要針對所有重要的資料庫設定交易記錄檔備份排程,以便於管理者可以隨時還原任一交易記錄檔備份的時間點,例如以每一個小時作為每一次交易記錄檔的備份間隔時間,不過在此必須特別注意有關交易記錄檔的備份排程設定,必須相依在第一次[完整備份]的時間點,以及最後一次[差異備份]的時間點為一個備份週期。

不過為了避免備份檔案大小的不斷成長,因此其中必須要有一個備份時間點的執行是採用如圖5所示中的[覆寫所有現有的備份組]設定選項,一般來說如果我們是以一天作為一個備份週期,則可以將第一個時間點的完整備份設定為此覆寫項目,如此一來資料庫備份的資料量便可以維持在最新的一天。


圖5 設定備份選項

看完了以上有關於基本備份計畫擬定的概念之後,接下來我們便可以開始來實作這一項備份排程工作。首先您必須先建立第一個完整備份的時間點在離峰時間(最好是沒有任何使用者存取的時間),如果是以一天作為備份週期安排的話,那麼別忘了在選項頁籤中將它設定為[覆寫所有現有的備份組]。
接著請如圖6所示點選位在[一般]頁籤中的[指令碼]下拉選單,然後選取[編寫動作的指令碼至作業]項目。


圖6 啟動動作的指令碼至作業

接下來系統便會開啟[新增作業]的設定視窗,如圖7所示請先設定易於識別的備份作業名稱以及選擇前面我們所設定的適當類別目錄項目,如果希望資訊更完整那麼請一併輸入相關描述說明。


圖7 設定作業一般組態

接下來您可以直接切換到[排程]的頁籤中,如圖8所示來新增設定這一項備份作業的執行時間,在設定排程的頁面中您必須將排程類型設定為[重複執行],而頻率部份請設定為發生於[每日]以及重複頻率為[一天]。


圖8 設定作業排程

接下來請切換到[通知]頁籤中,如圖9所示在此您可以設定在執行作業後所要通知的管理員,並且可以按照作業執行的狀態來決定,例如選擇當作業失敗時或是當作業成功時才發送,至於如果選擇作業完成時即表示無論執行成功或失敗皆發送相關通知,而發送通知的方法常見可以選擇電子郵件或是NetSend方式來完成,前者必須預先有設定好Database Mail或是SQL Mail,後者則必須確認受通知的目標電腦中的訊息服務目前正在啟用中,因為預設Windows XP或Windows Server 2003皆是設定為停用的。此外建議您最好能夠將[寫入Windows應用程式事件記錄檔]項目設定為[當作業失敗時]來觸發,因為一旦發生備份作業失敗時,便可以方便管理員可以直接在本機的事件檢視器中來查看應用程式事件的相關記錄內容。


圖9 設定作業通知
當我們初步完成了上述有關於整個資料庫的備份計畫設定時,建議您不妨在實際的備份排程一一來到之前,先自行手動來執行剛剛所建立好的每一項備份作業,以確定這一些作業的執行結果都是符合預期的。
執行的方法很簡單,請如圖10所示在展開至[SQL Server Agent]節點下的[作業]之後,針對所想要執行的作業項目上按下滑鼠右鍵點選[從下列步驟啟動作業],此刻系統便會開啟作業的執行視窗,如果狀態顯示成功那麼表示一切沒有問題。


圖10 手動執行備份作業


圖11 作業活動監視器

除了確認手動執行作業是沒有問題的之外,建議您對於每一天作業的執行狀態檢查,可以三不五時透過同樣位在[SQL Server Agent]節點下的[作業活動監視器]項目上,按下滑鼠右鍵點選[檢查作業活動]項目,執行後如圖11所示在這個視窗中管理員可以很清楚的分別看到每項排程作業最新一次的執行狀態成功或失敗、上一次與下一次的執行時間、所屬的類別目錄以及是否被列入了排程設定中。
上述這一種檢視方法是比較簡易的重要資訊呈現方式,如果管理員想檢視每一項作業的完整執行過程與結果,那麼您還可以選擇在[作業]節點上按下滑鼠右鍵選取[檢視歷程記錄],接著系統便會開啟如圖12所示的[記錄檔檢視器]視窗,在這個頁面中首先您可以展開每一個作業項目的作業歷程記錄內容,而在訊息的欄位中可以檢視到整個作業的執行過程敘述,另外則是您可以針對這一些記錄檔內容進行篩選與排序,以及進行匯出至檔案的作業。


圖12 檢視作業歷程記錄

資料庫還原工作
只要是人為的操作過程難免就會發生資料誤刪與修改上的錯誤,或是嚴重的資料庫損毀問題等等,在這一個狀況下先前的備份作業就可以立即派上用場了。想要將先將備份過的資料庫進行還原相當容易,只要在所要還原的資料庫項目上按下滑鼠右鍵選擇[工作]\[還原]即可,如圖13所示系統將會開啟[還原資料庫]的視窗,在這個頁面中首先您便可以在[選取要還原的備份組]清單中,直接選取所要還原的時間點即可,不過如果今天您是資料庫整個損毀之後而重新建立一個全新的資料庫,那麼恐怕您將無法立即看到先前的備份組清單以及進行資料庫的還原,此刻您便需要先行點選[來源裝置]旁的按鈕來載入備份的檔案,如此一來便可以一樣開始選擇所要還原的時間點備份資料了。


圖13 還原特定的備份時間

確認與勾選了所要還原的備份組之後,且先切換到如圖14所示[選項]的頁籤中注意相關的還原選項設定,在此建議您在每一次進行資料庫的還原作業之前,除了先確認目前沒有用戶端的使用者在連線存取之外,也請將預設沒有勾選的[覆寫現有的資料庫]與[限制對還原資料庫的存取]項目勾選,如此一來便可以真正確保整個資料庫在進行資料庫的還原作業不會發生被中斷的問題,否則極可能會發生如圖15所示的還原錯誤訊息,這個發生原因是因為目前尚有使用者在連線存取中,以致於資料庫進行還原時無法完全獲得資料庫的獨佔存取權。


圖14 還原選項設定


圖15 可能的還原失敗錯誤

SQL Server 2005支援資料庫檔案線上還原?
許多人在相關研討會中可能會聽聞到有關於SQL Server 2005支援資料庫檔案線上還原的新功能,不過它有以下幾項重要注意事項與限制需要特別留意。

S [*]唯一在SQL Server 2005企業版中提供,至於在SBS 2003 R2中的工作群組版是不支援的。
S [*]唯一提供在完整模式、大量記錄模式的還原模式設定下
S [*]在預設狀態下,還原一個檔案或一個Page是自動以線上還原方式進行
S [*]當任何檔案群組中的檔案進行還原時,此檔案群組是處於離線狀態
S [*]當任何資料庫在進行主要檔案群組的檔案還原時,在這期間該資料庫是處於離線狀態

資料庫維護計畫的使用

有關於資料庫整體的維護計畫,您可以選擇自行手動在管理介面中來一一建立,例如前面提到的資料庫備份排程設定、資料庫檔案大小的縮減,或是您也可以透過[SQL Server Agent]節點下[作業]項目上來按下滑鼠右鍵選擇[新增作業]選項,來自訂諸如資料庫索引的重整、修復、資料備份等工作,不過這一些動作皆必須經由SQL語法的下達在作業排程中才能夠達成,對於不熟悉SQL語法的IT人員來說,恐怕光是要完成這一些定期的維護工作設定,就得需要花上好幾個小時的寶貴時間來學習。

到底有沒有一個更好更快的方法來一氣呵成這一些常見的維護工作呢?答案是有的,請在管理介面中展開至[管理]\[維護計畫]選項下,接著按下滑鼠右鍵選擇[維護計畫精靈]。如圖16所示,緊接著您便可以透過這個精靈工具來開始選擇性的完成定期資料庫一致性的檢查、索引資料的維護、更新資料庫的統計資訊以及資料庫的備份作業,並且可以讓一些工作的執行結果透過Email的傳送,來讓特定的管理人員獲知工作執行的詳細報告。


圖16 維護計畫精靈

如圖17所示在下一步的頁面中首先我們必須先設定本次建立的維護計畫名稱、伺服器名稱以及採用的驗證方法與負責執行的使用者帳戶資訊,接下來在[選取維護工作]的頁面中,便可以如圖18所示開始選擇所要進行維護工作的項目,這一些包括了檢查資料庫完整性、壓縮資料庫、重新組織索引、重建索引、更新統計資訊、清除歷程記錄、執行SQL Server Agent作業以及三種不同備份資料庫的方式,其中如果有選取執行SQL Server Agent的項目,則系統中必須有預先建立好的作業項目可以提供精靈設定過程中來選取。


圖17 設定目標伺服器與驗證方法


圖18 選取可用工作項目

完成了所要執行的作業項目選取之後,接下來便需要開始如圖19所示來調整所有作業執行的順序,您只要點選[上移]與[下移]的按鈕調整即可,接下來便可以繼續點下一步來完成有關於每一項作業的所需細部設定,例如如果您有選擇相關的備份作業執行,則將同樣設定所要備份的資料庫、備份檔案的儲存路徑以及副檔名等資訊。


圖19 設定工作順序

以上關於備份計畫的設定是透過精靈工具來一步一步按照指示完成,如果您希望可以擁有更彈性的作法來完成,那麼您便可以改由選擇手動的方式來自行繪製整個維護計畫的流程。執行方法只要同樣在[管理]的[維護計畫]項目上按下滑鼠右鍵點選[新增維護計畫],接下來您便可以如圖20所示將工具箱中的相關可用工作項目拖曳到設計頁面中,例如我可以先拖曳一個[備份資料庫工作]項目然後在內容中設定好完整備份組態,接著再拖曳一個[維護清除工作]項目出來,並且設定自動刪除早於四週的備份檔案,然而無論是完成備份工作或是維護清除工作的完成,都建議加上完成作業時執行[通知操作員工作]項目。


圖20 手動設計維護計畫流程

Database Mail功能的使用
在SQL Server 2005中若想要使用Email的發送功能便需要啟用SQL Mail或Database Mail,不過根據了解SQL Mail在這一個版本中只是一個過渡期的沿用,也就是說在往後更新的版本就不會有它的存在了,因此強烈建議您目前就只使用全新的Database Mail就好,以下就讓我們來看看它們之間的差異性與特色,以及有關Database Mail的設定步驟說明。

S [*]所有關於從SQL Server所發送的Email機制都需要透過它
S [*]取代原有SQL Mail必須安裝Outlook與透過MAPI連線方式的不便
S [*]可以結合任何現有的郵件伺服器來使用
S [*]可以一次設定多組不同Email的SMTP帳戶組態並且排列優先權,如此一來即使發生了某一組的SMTP服務無法正常使用,仍然還可以繼續由下一個順位的SMTP帳戶來進行發信的作業。


以下說明它整個啟用與設定的步驟:

[*]請開啟至[管理]節點下的[Database Mail]項目上,接著按下滑鼠右鍵並選取[設定Database Mail]。
[*]如圖21所示接著在Database Mail組態精靈的下一步頁面中,我們可以選擇建立新的設定還是管理現有的組態設定,如果是第一次執行那麼請選取預設值即可。



圖21 選取組態工作


圖22 Database Mail功能啟用提示

接下來系統將會出現如圖22所示的[無法使用Database Mail功能,您要啟用此功能嗎?]的訊息視窗,請點選[是(Y)]即可。當然啦!您也可以預先在介面組態設定工具中啟用它。


圖23 新設定檔頁面


圖24 新增Database Mail帳戶

如圖23所示接下來在新設定檔的頁面中,請分別設定此設定的檔名稱以及所有想要用來傳送Email的SMTP帳戶資訊,如圖24所示在每一個帳戶組態中必須至少包含帳戶名稱、電子郵件地址、顯示名稱、回覆電子郵件以及伺服器名稱的欄位資訊,至於驗證方法的選擇部份,如果說該SMTP服務位在相同的網域內,則可以直接選擇[使用Database Engine服務認證的Windows驗證]項目即可。


圖25 管理設定檔案安全性

[*]接下來在[管理設定檔案安全性]的頁面中,如圖25所示您可以決定剛剛設定的這一個設定檔要做為公用還是只給予特定使用者或角色專屬的私人設定檔,一般來說都會選擇前者並且設定為預設設定檔。


圖26 設定系統參數

精靈頁面的最後如圖26所示您可以設定進階系統參數,像是帳戶嘗試重試的次數、帳戶重試延遲的秒數以及禁止的附加檔案副檔名等等。

成功完成了此精靈設定之後,建議您最好能夠執行如圖27所示的來進行[傳送測試電子郵件]功能,並且如圖28所示在指定了收信者的Email之後,請如圖29所示在您個人的郵件管理工具中確認該使用者確實有收到一封由SQL Server 2005 Database Mail所發送的測試信件。

在此提醒您在完成了Database Mail的設定與測試之後,別忘了新增設定SQL Server 2005的操作員,如此一來在後續的SQL Server Agent中的警示系統或是作業的管理才能夠正常選擇與使用。


圖27 設定與測試資料庫郵件功能


圖28 傳送電子郵件測試設定


圖29 查看接收的測試電子郵件

伺服器安全性配置


圖30 SQL Server安全性配置

在完成了SQL Server 2005的安裝之後,管理員若想要變更伺服器本身(應該說執行個體)的基本安全性組態,則可以在伺服器的節點上按下滑鼠右鍵點選[屬性],接著切換到[安全性]的頁籤頁面中。如圖30所示由上而下首先我們可以變更的是伺服器驗證的模式,在預設的安裝是唯一採用[Windows驗證模式],這種安全驗證方法固然是比較安全,可是對於一些不支援此驗證模式的系統來說,唯一只能夠選擇的僅有SQL Server驗證方式,如果您發現您前端的應用系統無法採用Windows驗證模式時,則請在此進行變更成為混合驗證的模式,也就是[SQL Server及Windows驗證模式]同時存在即可,如此一來對於SQL Server來說後續可以管理的使用者登入便會出現兩種類型。


圖31 登入失敗分析報告

接下來再登入稽核的設定部份,管理員可以設定稽核登入與登出的需求,一般來說我們都會把它設定在[僅限失敗的登入]稽核項目上,如此一來便可以在SQL Server的記錄檔中得知哪一些使用者不斷嘗試登入失敗的追蹤資料,並且還可以如圖31所示在[登入]的節點上開啟[報表]下拉選單中的[登入統計資料]、[登入失敗]以及[依登入的資源鎖定統計資料]。範例中便是進行登入失敗的分析報告。

談到了稽核的管理部份,順道一提的是管理員也可以同樣在伺服器的節點上點選[報表]下拉選單中的[結構描述變更歷程記錄]選項,如此一來便可以如圖32所示快速檢視到整個伺服器中有哪一些資料庫的Schema曾經遭受到哪一些使用者的變更。


圖32 檢視資料庫結構變更記錄

另外在伺服器的安全性配置中,如果想讓使用者可以透過Proxy的連線方式來存取SQL Server,則可以將[啟用伺服器Proxy帳戶]的選項勾選,並且設定連線的帳戶與密碼資訊。至於在[啟用C2稽核追蹤]的選項設定中,所謂C2便是美國國家安全標準的定義,主要用以確保受維護的資料能夠具有完整的稽核記錄資訊,以便於後續相關的安全追蹤,而一旦勾選此選項之後這一些稽核記錄檔便會儲存在安裝路徑中的\MSSQL\Data資料夾中。最後在[跨資料庫擁有權鏈結]的設定部份,一旦勾選即表示能夠讓一個帳戶的使用者登入之後擁有在多個資料庫的存取權限,讓多個資料庫的DBO使用者對應至相同的登入帳戶。


結 論
有關於SQL Server 2005在各種安全規劃管理上所能夠分享的技巧還有很多,在後續的文章中,筆者還將陸續與各位讀者探討有關於諸如資料庫鏡射、叢集架構的建置、資料庫快照的使用等等,敬請期待!

搜尋相關Tags的文章: [ SQL Server ] , [ MVP ] , [ 資料庫安全 ] ,
本篇文章發表於2014-12-31 15:46
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.