本文最后更新于 2024-05-22,文章内容可能已经过时。

Sql-Server-安全加固/安全基线

允许数据库用户进行身份认证

1)数据库管理员列出所需的生产、运维账号列表

1.展开服务器组,右键单击服务器->在弹出的右键菜单中单击“属性”,在“安全性”选项卡中选择“服务器身份验证”认证方式为“SQL Server和Windows身份验证模式”。

2.在“SQL Server管理器”-〉“安全性”-“登录名”中,选择账号“BUILTIN\Administrators”,右击选择“属性”,

更改“状更改“状态”设置“拒绝允许连接到数据库引擎”和“禁用登录”。

删除或锁定多余账号

SQL Server管理器->安全性->登录,询问数据库管理员每个账户的用途,查看是否存在多余的、过期的账户,右键“属性”-“状态”拒绝、禁用,或者直接右键删除。

设置口令复杂度

打开SQL Server Management Studio管理界面,在左侧展开“登录名”,对 sa和其它登录名逐一右键点击查看属性,勾选“强制实施密码策略”。

强制密码过期

打开SQL Server Management Studio管理界面,在左侧展开“登录名”,对 sa和其它登录名逐一右键点击查看属性,勾选“强制密码过期”。

通讯协议加密

SQL Server配置管理器>>SQL Server网络配置>>MSSQLSERVER的协议,右键点击>>属性>>标志

把“强行加密”(ForceEncryption)设为“是”。

数据库角色分配最低权限

在“SQL Server管理器”>>“安全性”中,选中每个登录用户,在右键菜单中选择“属性”,查看每个登录用户的角色和权限,查看是否是该用户所需的最小权限。

1、更改数据库属性,取消业务数据库账号不需要的服务器角色;

2、更改数据库属性,取消业务数据库账号不需要的“数据库访问许可”和“数据库角色中允许”中不需要的角色。

限制guest账户对数据库的访问

打SQL Server管理界面,在左侧展开除了master和tempdb之外的所有数据库>>安全性>>用户,禁用或删除guest账户。

设置连接协议和监听的IP范围

1、从开始菜单打开SQL Server配置管理器,展开“SQL SERVER 2008网络配置>>SQL SERVER的协议,在右侧将不需要的协议禁用,如:VIA和Share Memory方式可能一般不需要使用。

在以上界面双击“TCP/IP”协议>>IP地址,如有不必要监听的IP项,则把“活动”属性设置为“否”。如:访问数据库的应用程序也装在该服务器上,则只需要监听127.0.0.1即可,其它IP不需要监听。在应用程序中配置为使用127.0.0.1访问数据库。

限制远程用户连接数量

在SQL Server管理界面左侧,右键点击服务器名称>>属性>>连接,设置“并发最大连接数”,按需修改,如2500。(上限为32767)

隐藏实例

在SQL Server配置管理器中选择“SQL Server 网络配置”中的“MSSQLSERVER的协议”,右键选择“属性”,选中其中的“隐藏实例”选项。

修改默认通信端口

在SQL Server配置管理器中选择“SQL Server 网络配置”中的“MSSQLSERVER的协议”,选中“TCP/IP”,右键选择“属性”,在TCP/IP属性对话框,选择“IP地址”选项卡,修改所有“TCP端口”为 27777,然后重启SQL Server生效。

启用日志记录功能

在“SQL Server管理器”->右键单击服务器->单击“属性”->“安全性”,选择每个登录的“审核级别”为“失败和成功的登录”。