拿到MS SQL 2005还没有一天,总的来说,MS SQL 2005的安全性比SQL 2000要强上不少,不过默认设置还是有和原来一样的漏洞,下面我们来修改一下默认设置。
i"|'p/9@q 1、安装MSSQL时使用混合模式,当然SA密码最好不能为空,在SQL2005中,可以对SA这个超级用户名进行修改或删除。
#2x\d use master
d [K56wbpx ALTER LOGIN [sa] WITH NAME=[zxs] /*修改SA帐号*/
9[$g;}w sp_password '111111','123456','sa' /*修改SA密码*/
Kw925@W 使用以上命令可修改SA帐号,也可进行图形化的修改
f9OVylm 使用安全的帐号策略。对SA或等同用户进行最强的保护,当然,包括使用一个非常强壮的密码,如下图
VbA#D 4;
S>cT(q_& 这里可以看到SQL 2005比SQL 2000 增强的地方了。
Rn-L:o@?
2、SQL的认证有Windows身份认证和混合身份认证。在2005中,登陆SQL可以使用indows身份认证和混合身份认证方便,如果不希望系统管理员接触数据库的话,可以在安全性==登录名是把系统帐号“BUILTIN/Administrators”删除。当然,还有别的多余的帐号也可一同禁止,只需要在帐号==属性==状态中把是否允许连接到数据库引擎改为拒绝,还有登录改为禁用即可,不过这样的坏处就是当你忘了SA的密码时,我也没办法帮你啦。
sV3/8W13
^HC!
my 也可用命令sp_change_users_login 'report' 搜索一下独立的帐户再删除
iFga==rw 3、管理扩展存储过程
}5DyNfZ]+0 删除不必要的存储过程,因为有些存储过程能很容易地被人利用起来提升权限或进行破坏。
(Rs<'1+> 如果你不需要扩展存储过程xp_cmdshell请把它去掉。xp_cmdshell根本就是一个大后门。
\<;/)!Nmw 如果不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:
O^sgUT1O sp_OACreate sp_OADestroy sp_OAGetErrorInfo sp_OAGetProperty
ScM2_k`D sp_OAMethod sp_OASetProperty sp_OAStop
%{o5}TqD 去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:
I uhyBo xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_regenumvalues
iM}cd$r{ xp_regread xp_regremovemultistring xp_regwrite
Vs9fAAXS4 还有一些其他的扩展存储过程,你也最好检查检查。
Wq"pKI#x 在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。运行以下SQL语句可删除所有危险的SP。
ap_(/W DROP PROCEDURE sp_makewebtask
q(a6@6f"kD exec master..sp_dropextendedproc xp_cmdshell /*命令行*/
^@L exec master..sp_dropextendedproc xp_dirtree /*可以展开你需要了解的目录,获得所有目录深度*/
KX`MX5?x exec master..sp_dropextendedproc xp_fileexist /*用来确定一个文件是否存在*/
5/neV&VcB exec master..sp_dropextendedproc xp_getnetname /*可以获得服务器名称*/
}Y<(1w exec master..sp_dropextendedproc xp_terminate_process
5_=&U-? H exec master..sp_dropextendedproc sp_oamethod
-FE5sW exec master..sp_dropextendedproc sp_oacreate
i-tX5Md| exec master..sp_dropextendedproc xp_regaddmultistring
xa!@$w=U& exec master..sp_dropextendedproc xp_regdeletekey
e2/[`k=7- exec master..sp_dropextendedproc xp_regdeletevalue
pMs%`j#T exec master..sp_dropextendedproc xp_regenumkeys
:/
"qNPJ exec master..sp_dropextendedproc xp_regenumvalues
,uDB] exec master..sp_dropextendedproc sp_add_job
64>Zr exec master..sp_dropextendedproc sp_addtask
+Uj~zx@ exec master..sp_dropextendedproc xp_regread
!f_Kq$.{ exec master..sp_dropextendedproc xp_regwrite
Q.vtU%T exec master..sp_dropextendedproc xp_readwebtask
I /> .P exec master..sp_dropextendedproc xp_makewebtask
|@V<}2zCZ exec master..sp_dropextendedproc xp_regremovemultistring
c$1ez exec master..sp_dropextendedproc sp_OACreate
&