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