使用Windows身份验证模式,并启用最小权限原则。只给用户必要的权限,不要给所有权限。关闭不必要的服务,比如SQL Browser如果不需要就停掉。定期备份数据库,并把备份加密存储。更新SQL Server到最新补丁,避免已知漏洞。
来源1
默认情况下,SQL Server安装后会用混合身份验证,但最好切换到Windows身份验证,这样更安全,不用存明文密码。步骤:右键服务器属性-安全-选择Windows身份验证模式,重启服务。数据更稳固,因为Windows会管密码安全。
来源2
启用SQL Server审计功能,记录所有登录和操作。默认没开,开了就能追踪谁动了数据。工具-审计-新建审计规范,选择安全审计,指定文件路径。让数据更稳固,出事能查。
来源3
设置防火墙,只允许特定IP访问SQL端口1433。默认全开,太危险。Windows防火墙进规则,新建入站规则,TCP 1433,只限信任IP。简单一步,挡住很多攻击。
来源4
禁用sa账户,默认sa是启用的超级管理员,太容易被猜密码攻击。属性-登录名-sa-禁用。创建新管理员用Windows域账户代替。安全大提升。
来源5
用Transparent Data Encryption (TDE)加密数据库,默认没加密,数据文件明文存盘。脚本:CREATE MASTER KEY;CREATE CERTIFICATE;CREATE DATABASE ENCRYPTION KEY;ALTER DATABASE加密ON。全盘加密,偷文件也看不懂。
来源6
限制数据库所有者权限,默认db_owner能做太多。改成db_datareader和db_datawriter,只读写,不删改结构。SQL命令:ALTER ROLE db_datareader ADD MEMBER 用户;安全稳固。
来源7
开启失败登录审计,默认不记,开了能看到暴力破解尝试。服务器属性-安全-标记“登录失败登录审核”。日志查Event Viewer,及早发现问题。
FAQ
Q: 为什么不用混合身份验证?
A: 混合模式存密码容易泄露,Windows模式借Windows安全管,不用担心。
Q: sa账户禁用后怎么登录?
A: 用Windows管理员账户,添加到SQL sysadmin角色。
Q: 加密后性能影响大吗?
A: 影响小,现代CPU有硬件加速,几乎不明显。
Q: 怎么快速检查安全设置?
A: 跑SQL Server安全检查报告,工具里就有,一键扫。
Q: 备份怎么加密?
A: BACKUP DATABASE TO DISK='path' WITH PASSWORD='pass', ENCRYPTION。