拿到ms sql 2005还没有一天,总的来说,ms sql 2005的安全性比sql 2000要强上不少,不过默认设置还是有和原来一样的漏洞,下面我们来修改一下默认设置。
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网络配置中)如下图
商业源码热门下载www.html.org.cn
新闻热点
疑难解答