1、安裝MSSQL時使用混合模式,當然SA密碼最好不能為空,在SQL2005中,可以對SA這個超級用戶名進行修改或刪除。
use master
ALTER LOGIN [sa] WITH NAME=[zxs] /*修改SA帳號*/
sp_password '111111','123456','sa' /*修改SA密碼*/
使用以上命令可修改SA帳號,也可進行圖形化的修改
使用安全的帳號策略。對SA或等同用戶進行最強的保護,當然,包括使用一個非常強壯的密碼,如下圖
這裡可以看到SQL 2005比SQL 2000 增強的地方了。
2、SQL的認證有Windows身份認證和混合身份認證。在2005中,登陸SQL可以使用indows身份認證和混合身份認證方便,如果不希望系統管理員接觸數據庫的話,可以在安全性==登錄名是把系統帳號“BUILTIN\Administrators”刪除。當然,還有別的多余的帳號也可一同禁止,只需要在帳號==屬性==狀態中把是否允許連接到數據庫引擎改為拒絕,還有登錄改為禁用即可,不過這樣的壞處就是當你忘了SA的密碼時,我也沒辦法幫你啦。
也可用命令sp_change_users_login 'report' 搜索一下獨立的帳戶再刪除
3、管理擴展存儲過程
刪除不必要的存儲過程,因為有些存儲過程能很容易地被人利用起來提升權限或進行破壞。
如果你不需要擴展存儲過程xp_cmdshell請把它去掉。xp_cmdshell根本就是一個大後門。
如果不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特征不能使用),這些過程包括如下:
sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty
sp_OAMethod sp_OASetProperty sp_OAStop
去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,如下:
xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues
xp_regread xp_regremovemultistring xp_regwrite
還有一些其他的擴展存儲過程,你也最好檢查檢查。
在處理存儲過程的時候,請確認一下,避免造成對數據庫或應用程序的傷害。運行以下SQL語句可刪除所有危險的SP。
DROP PROCEDURE sp_makewebtask
exec master..sp_dropextendedproc xp_cmdshell /*命令行*/
exec master..sp_dropextendedproc xp_dirtree /*可以展開你需要了解的目錄,獲得所有目錄深度*/
exec master..sp_dropextendedproc xp_fileexist /*用來確定一個文件是否存在*/
exec master..sp_dropextendedproc xp_getnetname /*可以獲得服務器名稱*/
exec master..sp_dropextendedproc xp_terminate_process
exec master..sp_dropextendedproc sp_oamethod
exec master..sp_dropextendedproc sp_oacreate
exec master..sp_dropextendedproc xp_regaddmultistring
exec master..sp_dropextendedproc xp_regdeletekey
exec master..sp_dropextendedproc xp_regdeletevalue
exec master..sp_dropextendedproc xp_regenumkeys
exec master..sp_dropextendedproc xp_regenumvalues
exec master..sp_dropextendedproc sp_add_job
exec master..sp_dropextendedproc sp_addtask
exec master..sp_dropextendedproc xp_regread
exec master..sp_dropextendedproc xp_regwrite
exec master..sp_dropextendedproc xp_readwebtask
exec master..sp_dropextendedproc xp_makewebtask
exec master..sp_dropextendedproc xp_regremovemultistring
exec master..sp_dropextendedproc sp_OACreate
DROP PROCEDURE sp_addextendedproc
5、SQL Server 2005本身就具有加密功能,完全集成了一個密鑰管理架構。不過,最好遠程網絡連接時使用SSL來加密協議,這就需要一個證書來支持。這裡搜索一下就會有很多這方面的說明,就不多說了。
6、使用IPSec策略阻止所有地址訪問本機的TCP1433與UDP1434端口,也可對TCP1433端口進行修改,但是在SQL2005中,可以使用TCP動態端口,(在SQL Server Configuration Manager的SQL 2005網絡配置中)如下圖
這是SQL幫助中的說明
如果某個 SQL Server 實例已配置為偵聽動態端口,則在啟動時,該實例將檢查操作系統中的可用端口,並為該端口打開一個端點。傳入連接必須指定要連接的端口號。由於每次啟動 SQL Server 時端口號都可能會改變,因此 SQL Server 提供 SQL Server 浏覽器服務器,來監視端口並將傳入連接指向該實例的當前端口。
也可對每個IP進行偵聽
這是SQL幫助中的說明
指定 SQL Server 是否偵聽所有綁定到計算機網卡的 IP 地址。如果設置為“否”,則使用每個 IP 地址各自的屬性對話框對各個 IP 地址進行配置。如果設置為“是”,則 IPAll 屬性框的設置將應用於所有 IP 地址。默認值為“是”。
當然你也可以下面的SQL Native Client 配置中新建一別名來指定你的SQL服務器和端口,也可在服務器屬性==連接==遠程服務器鏈接==把允許遠程鏈接到本服務器的勾去掉
關閉遠程鏈接命令行為
EXEC sys.sp_configure N'remote access', N'0'
8、對遠程網絡連接進行IP限制,SQL Server 2005如同SQL 2000一樣沒有提供網絡連接的安全解決辦法,但是Windows 2K以上系統了提供了IPSec策略。對遠程網絡連接的IP進行限制,只保證需要的IP能夠訪問,拒絕其他 IP進行的端口連接,把安全威脅降到最低。
9、在服務器的屬性安全中,啟用登錄審核中的失敗與成功登陸,啟用C2審核跟蹤,C2是一個政府安全等級,它保證系統能夠保護資源並具有足夠的審核能力。C2模式允許我們監視對所有數據庫實體的所有訪問企圖。如圖
啟用C2審核的命令為
EXEC sys.sp_configure N'c2 audit mode', N'1'
以上的方法不是很完整,因為時間關系以後再慢慢研究。