MSSQL2005数据库的安全问题受到人们的高度重视。拿到MSSQL2005还没有一天,总的来说,MSSQL2005的安全性比SQL2000要强上不少,不过默认设置还是有和原来一样的漏洞。下面学步园小编来讲解下怎样修改一下默认设置以确保MSSQL2005数据库的安全?
怎样修改一下默认设置以确保MSSQL2005数据库的安全
拿到MSSQL2005还没有一天,总的来说,MSSQL2005的安全性比SQL2000要强上不少,不过默认设置还是有和原来一样的漏洞,下面我们来修改一下默认设置。
1、安装MSSQL时使用混合模式,当然SA密码最好不能为空,在SQL2005中,可以对SA这个超级用户名进行修改或删除。
usemaster
ALTERLOGIN[sa]WITHNAME=[zxs]/*修改SA帐号*/
sp_password"111111","123456","sa"/*修改SA密码*/
使用以上命令可修改SA帐号,也可进行图形化的修改
使用安全的帐号策略。对SA或等同用户进行最强的保护,当然,包括使用一个非常强壮的密码,如下图
这里可以看到SQL2005比SQL2000增强的地方了。
2、SQL的认证有Windows身份认证和混合身份认证。
在2005中,登陆SQL可以使用indows身份认证和混合身份认证方便,假如不希望系统管理员接触数据库的话,可以在安全性登录名是把系统帐号“BUILTIN\Administrators”删除。当然,还有别的多余的帐号也可一同禁止,只需要在帐号属性状态中把是否允许连接到数据库引擎改为拒绝,还有登录改为禁用即可,不过这样的坏处就是当你忘了SA的密码时,我也没办法帮你啦。
也可用命令sp_change_users_login"report"搜索一下独立的帐户再删除
3、管理扩展存储过程
删除不必要的存储过程,因为有些存储过程能很容易地被人利用起来提升权限或进行破坏。
假如你不需要扩展存储过程xp_cmdshell请把它去掉。xp_cmdshell根本就是一个大后门。
假如不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下:
sp_OACreatesp_OADestroysp_OAGetErrorInfosp_OAGetProperty
sp_OAMethodsp_OASetPropertysp_OAStop
去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下:
xp_regaddmultistringxp_regdeletekeyxp_regdeletevaluexp_regenumvalues
xp_regreadxp_regremovemultistringxp_regwrite
还有一些其他的扩展存储过程,你也最好检查检查。
在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。运行以下SQL语句可删除所有危险的SP。
DROPPROCEDUREsp_makewebtask
execmaster..sp_dropextendedprocxp_cmdshell/*命令行*/
execmaster..sp_dropextendedprocxp_dirtree/*可以展开你需要了解的目录,获得所有目录深度*/
execmaster..sp_dropextendedprocxp_fileexist/*用来确定一个文件是否存在*/
execmaster..sp_dropextendedprocxp_getnetname/*可以获得服务器名称*/
execmaster..sp_dropextendedprocxp_terminate_process
execmaster..sp_dropextendedprocsp_oamethod
execmaster..sp_dropextendedprocsp_oacreate
execmaster..sp_dropextendedprocxp_regaddmultistring
execmaster..sp_dropextendedprocxp_regdeletekey
execmaster..sp_dropextendedprocxp_regdeletevalue
execmaster..sp_dropextendedprocxp_regenumkeys
execmaster..sp_dropextendedprocxp_regenumvalues
execmaster..sp_dropextendedprocsp_add_job
execmaster..sp_dropextendedprocsp_addtask
execmaster..sp_dropextendedprocxp_regread
execmaster..sp_dropextendedprocxp_regwrite
execmaster..sp_dropextendedprocxp_readwebtask
execmaster..sp_dropextendedprocxp_makewebtask
execmaster..sp_dropextendedprocxp_regremovemultistring
execmaster..sp_dropextendedprocsp_OACreate
DROPPROCEDUREsp_addextendedproc
怎样修改一下默认设置以确保MSSQL2005数据库的安全
5、SQLServer2005本身就具有加密功能,完全集成了一个密钥管理架构。
不过,最好远程网络连接时使用SSL来加密协议,这就需要一个证书来支持。这里搜索一下就会有很多这方面的说明,就不多说了。
6、使用IPSec策略阻止所有地址访问本机的TCP1433与UDP1434端口,也可对TCP1433端口进行修改,但是在SQL2005中,可以使用TCP动态端口,(在SQLServerConfigurationManager的SQL2005网络配置中)
这是SQL帮助中的说明
假如某个SQLServer实例已配置为侦听动态端口,则在启动时,该实例将检查操作系统中的可用端口,并为该端口打开一个端点。传入连接必须指定要连接的端口号。由于每次启动SQLServer时端口号都可能会改变,因此SQLServer提供SQLServer浏览器服务器,来监视端口并将传入连接指向该实例的当前端口。
也可对每个IP进行侦听
这是SQL帮助中的说明
指定SQLServer是否侦听所有绑定到计算机网卡的IP地址。假如设置为“否”,则使用每个IP地址各自的属性对话框对各个IP地址进行配置。假如设置为“是”,则IPAll属性框的设置将应用于所有IP地址。默认值为“是”。
当然你也可以下面的SQLNativeClient配置中新建一别名来指定你的SQL服务器和端口,也可在服务器属性连接远程服务器链接把允许远程链接到本服务器的勾去掉
关闭远程链接命令行为
EXECsys.sp_configureN"remoteaccess",N"0"
8、对远程网络连接进行IP限制,SQLServer2005如同SQL2000一样没有提供网络连接的安全解决办法,但是Windows2K以上系统了提供了IPSec策略。
对远程网络连接的IP进行限制,只保证需要的IP能够访问,拒绝其他IP进行的端口连接,把安全威胁降到最低。
9、在服务器的属性安全中,启用登录审核中的失败与成功登陆,启用C2审核跟踪,C2是一个政府安全等级,它保证系统能够保护资源并具有足够的审核能力。C2模式允许我们监视对所有数据库实体的所有访问企图。
启用C2审核的命令为
EXECsys.sp_configureN"c2auditmode",N"1"
以上就是关于“怎样修改一下默认设置以确保MSSQL2005数据库的安全”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!