安全性問題一直是DBA比較關(guān)心的問題,因為建立數(shù)據(jù)庫的目的就是讓相關(guān)的的客戶端來進行訪問,所以很難避免不出現(xiàn)安全隱患,例如客戶端鏈接的權(quán)限、數(shù)據(jù)傳輸過程中的安全等問題,所以大家在考慮SQL Server服務(wù)器安全的同時,必須留意以下幾個方面:
第一方面:
客戶端安全:首先需要保證客戶端必須是安全的,例如需要為你的客戶端安裝防病毒軟件,防火墻,安裝升級補丁等。
第二方面:
數(shù)據(jù)傳輸過程中的安全:數(shù)據(jù)在一般的傳輸過程中,很容易被監(jiān)聽或被捕獲,所以大家應(yīng)該使用加密機制來保證數(shù)據(jù)的機密性。
第三方面:
需要在數(shù)據(jù)庫服務(wù)器上實現(xiàn)安全機制以此來保證安全性。SQL Server數(shù)據(jù)庫是一個非常安全的數(shù)據(jù)庫,由于客戶端如果想對數(shù)據(jù)庫里的數(shù)據(jù)進行操作(select、insert等),就必須經(jīng)歷三道檢查,也就是我們要經(jīng)過的三道門(登錄驗證、數(shù)據(jù)庫驗證、對象權(quán)限)。
例:假如我們把SQL Server服務(wù)器看成一座大廈,我們首先要現(xiàn)有權(quán)利進入大廈,即通過大廈的大門(登錄驗證),然后還得擁有對某個房間的訪問權(quán)限(對數(shù)據(jù)庫的權(quán)限),進入房間后還得擁有打開保險柜的權(quán)利(對表的操作權(quán)限)。也就是首先我們必須先建立登錄帳戶,而登錄帳戶分為兩種:windows帳戶和SQL帳戶(因為SQL Server有兩種身份驗證,即windows身份驗證和混合身份驗證)。具體操作方法:打開“SSMS—SQL Server實例—安全性—登錄名”,右鍵選擇“新建登錄名”,選擇身份驗證模式(身份驗證模式不同,帳戶類型也不一樣,注意:建立windows登錄帳戶,必須先在windows操作系統(tǒng)上先建立該賬戶),輸入名字,并為該用戶選擇一個默認數(shù)據(jù)庫(比如默認為master數(shù)據(jù)庫)。該賬戶建立好之后,我們通過“新建”—“數(shù)據(jù)庫引擎查詢”的方式來測試用戶,我們會發(fā)現(xiàn)該用戶只能連接數(shù)據(jù)庫,并不能對數(shù)據(jù)庫進行任何其他操作。所以下面是第二道門,建立數(shù)據(jù)庫用戶,以便用戶可以訪問數(shù)據(jù)庫,對數(shù)據(jù)庫進行操作。我們在建立數(shù)據(jù)庫用戶時,其實就是映射登錄用戶,所以在一般情況下,我們的登錄名和數(shù)據(jù)庫用戶名是一致的。操作方法:第一種:打開“SSMS—SQL Server實例—具體的數(shù)據(jù)庫—安全性—數(shù)據(jù)庫用戶”;第二種:直接在以前建立過的登錄用戶上映射數(shù)據(jù)庫就可以了。最后一道門是在具體的數(shù)據(jù)庫對象(比如表)上授予具體的權(quán)限,三種權(quán)限如下:授予、回收和拒絕。