介绍 SQL Server 的安全配置


1. 使用安全的密码策略

       我们把密码策略摆在所有安全配置的第一步。注意,很多数据库账号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa账号的密码写于应用程序或脚本中。健壮的密码是安全的第一步,建议密码含有多种数字、字母组合,并且在9位以上。SQL Server2016安装的时候,如果使用混合模式,就需要输入sa的密码,除非确认必须使用空密码,这比以前的版本有所改进。同时养成定期修改密码的好习惯,数据库管理员应该定期查看是否有不符合密码要求的账号。

2. 使用安全的账号策略

       由于 SQL Server不能更改sa用户名称,也不能删除这个超级用户,因此必须对这个账号进行最严的保护。当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa账号,只有当没有其他方法登录 SQL Server实例(如其他系统管理员不可用或忘记密码时)时才使用sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的账号策略还包括不要让管理员权限的账号泛滥。

       SQL Server的认证模式有 Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员通过操作系统登录接触数据库,那么可以在账号管理中把系统账号BUILTIN Administrators删除。不过这样做的结果是,一旦sa账号忘记密码,就没有办法恢复了。很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配账号,并赋予仅仅能够满足应用要求和需要的权限。例如,只要查询功能的,就使用一个简单的 public账号能够select就可以了。

3. 加虽数据库日志的记录

       审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面就详细记录了所有账号的登录事件。请定期查看 SQL Server日志,检查是否有可疑的登录事件发生,或者使用DOS命令的情况。

4. 管理展存储过程

       对存储过程进行大手术,并且对账号调用扩展存储过程的权限要慎重。其实,在多数应用中根本用不到多少系统的存过程,而SQL Server的这么多系统存储过程只是用来适应广大用户的需求,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易被人利用,用于提升权限或进行破坏。如果不需要扩展存储过程 Xp_cmdshell,就将其去掉。使用这个SOL语句:
 

use master

sp_dropextendedproc ‘xp-cmdshell’

       Xp_cmdshell是进入作系统的最佳捷径,是数据库留给操作系统的一个打后面。如果需要这个存储过程,使用这个语句也可以恢复过来。

sp_addextendedproc ‘xp_cmdshell’,’ spSOL70.d11’

如果不需要,请丢弃OLE自动存储过程(这会造成管理器中的某些特征不能使用)。
这些过程如下:

Sp_Oacreate Sp_Oadestroy Sp_Oageterrorinfo Sp_Oagetproperty
sp_oamethod sp_oasetproperty Sp_Oastop

去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码,命令如下:

Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_reread Xp_regremovemultistring
Xp_regwrite

还有一些其他的扩展存储过程,也最好检査一下。在处理存储过程的时候,请确认一下,避造成对数据库或应用程序的伤害。

5. 使用协议加密

       SQL Server2016使用 Tabular Data Stream协议进行网络数据交换,如如果不加密,那么所有的网络传输都是明文的,包括密码、数据库内容等,这是一个很大的安全威胁。能被人在网终中截获他们需要的东西,包括数据库账号和密码。所以,在条件允许的情况下,最好使用SSL加密协议。当然,这需要一个证书来支持。

6. 不要让人随便探则到你的 TCP/IP端口

       默认情况下, SQL Server使用1433端口监听,很多人都说 SQL Server配置的时候要改变这个端口,这样别人就不会轻易地知道使用的是什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易地知道 SQL Server使用的 TCP/IP端口是什么。不过,微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中,选择 TCP/IP协议的属性。选择隐藏 SQL Server实例,若隐藏了 SQL Server实例,则将禁止对试图枚举网络上现有的 SQL Server实例的客户端所发出的广播做出响应。这样,别人就不能用1434探测你的TCP端口了(除非用 Port Scan)。

7. 改 TCP/IP使用的端口

       上一步配置的基础上更改原来默认的1433端。在实例属性中选择网名配置中的TCP/IP协议的属性,将TCPP使用的獣认端日变为其他端口。

8. 拒绝来自1434端口的探测

       由1434端口探测没有限制,能够被别人探到一些数据库信息,还可能遭到DoS攻击,让数据库服务器的CPU负荷増大,因此对 Windows2000操作系统来说,在 Ipsee过滤拒绝掉1434端口的UDP通信可以尽可能地隐藏你的 SOL Server。

9. 对网络连接进行IP限制

       SQL Server 2016数据系统本身没有提供网络连接的安全解决办法,但是 Windows2000提供了这样的安全机制。使用操作系統自己的IPSee可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他P进行的端口连接,对来自网络上的安全威胁进行有效的控制。

       上面主要介绍了一些 SOL Server的安全配置,经过以上配置,可以让 SOL Server本身具备足够的安全防范能力。当然,更主要的是要加强内部的安全控制和管理员的安全培训,解决安全性问题是一个长期的过程,需要以后进行更多的安全维护。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值