一、设置审核级别
设置SQL Server的审核选项,针对登录成功和失败的用户都要进行审核。
数据库属性-安全性,登录审核勾选失败和成功的登录
二、修改SQL Server服务的运行身份,设置目录权限
默认情况下,SQL Server服务是以本地系统的身份运行的。也就是说,SQL Server服务进程对系统拥有一切操作的权限,这是很不安全的。因此,我们需要将SQL Server服务的运行身份修改为普通用户:
a.新建一个普通用户,如mssqluser,将此用户加入以下两组:
SQLServerMSSQLUser
SQLServerSQLAgentUser
b.授予C盘mssqluser用户的读取权限,D、E等其他分区mssqluser用户的修改权限,mssql安装目录(如D:/Program Files/Microsoft SQL Server),数据库文件存放目录(如D:/mssqldata)mssqluser用户的完全控制权限
c.将SQL Full-text Filter Daemon Launcher (MSSQLSERVER) SQL Server (MSSQLSERVER)服务的登录修改为mssqluser用户,然后重启这两个服务
三、加强用户口令:加强所有账号的口令,特别是sa账号需要设置为强口令
四、禁用xp_cmdshell的存储过程
如果你不必扩展存储过程xp_cmdshell请把他禁用掉。使用这个SQL语句:
------禁用 -- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 0 GO -- To update the currently configured value for this feature. RECONFIGURE GO |
xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果你需要这个存储过程,请用这个语句也能恢复过来。
---启用 -- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 1 GO -- To update the currently configured value for this feature. RECONFIGURE GO |
五、隐藏SQL Server实例,将禁止对试图枚举网络上现有的 SQL Server 实例的客户端所发出的广播作出响应
六、修改TCP/IP使用的端口
请在上一步设置的基础上,更改原默认的1433端口。TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口
七、对网络连接进行IP限制
针对数据库服务器的IP连接进行限制,只确保自己的IP能够访问,也拒绝其他IP进行的端口连接,对来自网络上的安全威胁进行有效的控制