Sqlsever 数据库有两种登陆身份验证模式,一种是windows身份验证;一种是sqlserver 账户验证模式,在sqlserver 账户验证模式中,sa账户是大家所熟知的,并且sa也是内置的默认管理员账户,拥有最高的操作权限;前面提到,sa账户是大家所熟知的,那么,一些别有用心的人也知道sa账户,这就为我们的数据安全留下了隐患;
黑客会通过扫描程序在互联网上大量扫描,会发现那些开着远程访问,并且使用sa账户的数据库服务器,然后用穷举法不断尝试密码,即使是你的密码在怎么复杂,也扛不住它24小时不间断的扫描。
如果你的数据库还在使用sa账户登录,并且还设置了远程登录(内网除外,这里说的是外网登录),那么你现在就可以去查看下你是不是已经被成功锁定了,打开【管理】-【Sql Server日志】如下图:
可以看到,当前我的这台服务器已经有大量的IP在扫描尝试sa账户登录了,1秒钟可以多达几次,并且不止一个IP在扫描;
然后,将扫描的IP提取出来,查看IP所在地
【27.8.47.222来自重庆市重庆市】 联通【122.163.123.129来自印度】
可见作恶这种事情,是多么国际化,一个IP来自重庆,一个IP来自印度,这些恶意IP大量扫描,不仅会给我们的安全带来极大的危险,而且还会占用我们的服务器带宽,并且每一次扫描都会被sqlserver日志所记录,也会使我们的数据库日志文件增大,占用服务器空间;
所以,为了安全起见,我们可以从以下几个方面提高我们的安全级别:
1:禁用sa账户;
2:修改sqlserver 服务器默认端口1433;
3:限制sqlserver 登陆IP;
4:关闭数据库外网访问;(如果有网站需要使用数据库服务,则在内网使用web 服务访问数据库服务就可以了,开放Web服务的外网访问,关闭掉数据库的外网访问)
禁用 sa 账户
1、打开SQL连接工具(SQL Server Management Studio),并使用windows验证登录。
2、连接到数据库后,找到安全性 — 登录名 — 找到sa账户;在sa账户中,右键选择属性选项。
3、找到状态选项,可以看到右边有:是否允许连接到数据库引擎 和 登录两项。并进行设置,然后保存。
设置后进行保存,将是否允许连接到数据库引擎 和 登录状态分别设置为 拒绝 和 禁用。
可以看到sa账户出现小箭头表示状态。
4、测试sa账号能否正常登录。
打开SQL连接工具(SQL Server Management Studio)连接数据:
这里用另一个数据库客户端(Navicat 工具)测试:
部分内容参考这篇文章: