如何保证SQLServer数据库安全?本文介绍从以下8个方面入手加强数据库安全,相对减少被入侵的风险。
1. 限制可以访问数据库的IP
一般可以通过安全策略里面的ipsec或者windows防火墙来限制。
2. 修改数据库的访问端口
可以在SQL SERVER 配置管理器修改访问端口为不常见端口来防止一般性扫描。
3. 修改日志审核策略
将登录审核修改为“开启登录成功和失败的日志”,这样方便数据库被入侵之后,对日志的查看。
4. 对SA账户的处理
如使用混合身份验证模式,建议禁用掉SA账户,否则设置非常强的SA密码。
5. 网站使用的数据库账号
对于每一个网站新建一个登陆用户并关联一个数据库用户,设置强密码,给予服务器角色为:PUBLIC,给予对应的数据库角色为:db_owner(需更加安全的保护对应数据库的数据需要调节更加严格的权限,此处给予的为此数据库的最高权限,若此账号泄露,此数据库中的数据不保,配合后续配置不影响服务器安全)。
6. 数据库服务运行账号
数据库需要往磁盘写文件,或者通过存储过程执行命令的权限由数据库服务器的运行账户权限决定,使用NETWORK SERVICE账户来运行数据库服务器是较安全的。
7. 磁盘权限的合理配置
合理配置数据库运行,账户在磁盘上的权限,一定不要随意给写权限,特别是网站目录及数据库存储目录以外的位置,这样即使是SA也不能往磁盘写文件。
8. 危险存储过程的处理
由于在sql server 2008中sp_dropextendedproc 不能删除系统扩展存储过程,所以直接禁用常见危险存储过程。具体可根据实际情况来操作,因为有些存储过程是正常需要的。对于一般账户而言,根本没有执行这些高危存储过程的权限,而对于SA账户来说,以上所有的操作都是可恢复的,个人觉得SA账户被入侵之后的关键控制点在于合理配置数据库服务运行账号的权限。