SQL安全注意事項(xiàng)列表
導(dǎo)讀:使用集成化安全模式,OS安全性可以大大地簡(jiǎn)化管理工作,管理員不需要再同時(shí)管理兩個(gè)獨(dú)立的安全模型。這樣還可以使連接字符串中不包含密碼。SQL安全是數(shù)據(jù)庫(kù)管理員最為重要的工作之一,下文中總結(jié)的注意事項(xiàng)希望大家在以后的工作中都能夠足夠重視。
1) 花點(diǎn)時(shí)間去審計(jì)SQL登錄密碼的有效性以及密碼安全性。
使用以下代碼檢查無(wú)效密碼:
Use master
Select name,
Password
from syslogins
where password is null
order by name
檢查密碼安全性的強(qiáng)弱有很多免費(fèi)和付費(fèi)工具,SQLPing2就是一個(gè)免費(fèi)的工具,可以用來(lái)檢查密碼的有效性和安全性。
2)經(jīng)常檢查群組和角色成員身份
雖然SQL Server安全性模式有很多改進(jìn),但是它也同時(shí)增加了一層額外的權(quán)限,我們必須對(duì)此進(jìn)行監(jiān)督,確保每個(gè)成員的權(quán)限符合其成員身份。還有的情況就是用戶在企業(yè)里的身份已經(jīng)發(fā)生改變,但是SQL Server的權(quán)限結(jié)構(gòu)還沒(méi)有做出相應(yīng)的調(diào)整。
3)保證SQL Server的物理安全性
把SQL Server鎖在門后,如果你正在使用它,就把鑰匙鎖藏起來(lái)。因?yàn)樽趕erver前的人總有會(huì)鉆空子的。
4)重寫(xiě)應(yīng)用程序,使用能夠更好地定義用戶的存儲(chǔ)程序和視圖
這樣做可以盡量減少提供直接訪問(wèn)表格權(quán)限的需要。程序開(kāi)發(fā)員能夠更好控制數(shù)據(jù)存取的情況。
5)啟用記錄所有用戶登錄事件
你可以通過(guò)以下代碼完成這一點(diǎn):
xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer',N'AuditLevel', REG_DWORD,3
6)檢查master..Sp_password中是否含有trojan代碼
把你的生成腳本與全新安裝程序的過(guò)程默認(rèn)腳本進(jìn)行對(duì)比。把這些代碼保存在方便查閱的地方。
7)檢查master..Sp_helpstartup中是否含有trojan程序
確保這里沒(méi)有后門程序。使用Sp_unmakestartup來(lái)清楚所有流氓程序。
8)除非絕對(duì)有必要的情況,否則禁用SQL Mail功能
開(kāi)放這個(gè)功能無(wú)疑給黑客另一個(gè)傳播木馬、病毒或者給攻擊服務(wù)器使其不能提供服務(wù)的途徑。這個(gè)功能本身并沒(méi)有任何害處,但是它能夠被黑客所利用。
8)清除數(shù)據(jù)庫(kù)里的訪客用戶,確保沒(méi)有未授權(quán)用戶濫用數(shù)據(jù)庫(kù)
這個(gè)是默認(rèn)設(shè)置,但是要警惕一些dbo在權(quán)限控制上出現(xiàn)松懈的情況。唯一的例外情況是當(dāng)主數(shù)據(jù)庫(kù)和tempdb數(shù)據(jù)庫(kù)需要作為訪客帳戶登錄時(shí)。
9)確保所有SQL Server數(shù)據(jù)和系統(tǒng)文件都安裝在NTFS分區(qū)里
如果有人需要訪問(wèn)OS,確保需要有必要的權(quán)限設(shè)置,防止出現(xiàn)重大問(wèn)題。
10)需要使用SQL Server服務(wù)時(shí)使用低權(quán)限的用戶帳號(hào),而不要使用LocalSystem或管理員帳號(hào)。
這個(gè)帳號(hào)應(yīng)該設(shè)置為最小權(quán)限(最好是本地用戶),而且應(yīng)能夠在出現(xiàn)漏洞的情況下抑制服務(wù)器受到攻擊。注意如果使用Enterprise Manager或SQL Server Configuration Manager (SQL 2005)來(lái)做改動(dòng)的話,文件、注冊(cè)和用戶權(quán)利的SCLs都會(huì)自動(dòng)完成。
11)設(shè)置安全性強(qiáng)的密碼來(lái)保證“sa”帳戶的安全
適用于使用SQL Server和Windows安全模式的情況。盡可能使用Windows Only模式,這樣你就不用擔(dān)心有人會(huì)強(qiáng)制使用“sa”帳戶。當(dāng)然,就算做到這一步,最好還是設(shè)置一個(gè)安全性強(qiáng)的密碼,因?yàn)殡y免不會(huì)出現(xiàn)有人改變系統(tǒng)模式的情況。
12)只選擇企業(yè)必需的網(wǎng)絡(luò)連接庫(kù)
如果企業(yè)的SQL Server只是本地使用,為什么不禁用所有的網(wǎng)絡(luò)連接庫(kù),只使用共享內(nèi)存來(lái)訪問(wèn)SQL Server呢?只用'(local)'作為服務(wù)器名稱。如果你的SQL Server需要連接其他服務(wù)器,使用TCP/IP netlib,然后決定是否需要SSL。
13)確保使用最新版的操作系統(tǒng)和SQL Server 服務(wù)包/熱補(bǔ)丁
毫無(wú)疑問(wèn),這是安全事項(xiàng)里不可能會(huì)缺少這一項(xiàng)。只要在你的SQL Server里執(zhí)行"select @@version"。
【編輯推薦】