1.身份鉴别
1.1避免使用空密码和弱口令
要求:应对登录操作系统和数据库系统的用户进行身份标识和鉴别。
目的:操作系统和数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换。
参考操作步骤:
对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有账号的口令,确保口令达到至少12位长度,包括数字、字母、符号混排,无规律的方式。
打开SQL Server Management Studio管理界面,在左侧展开“登录名”,对 sa和其它登录名逐一右键点击查看属性,勾选“强制实施密码策略”。
1.2通讯协议加密
要求:当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听。
目的:为了防止包括鉴别信息等敏感信息在网络传输过程中被窃听,应使用加密通讯协议,提高安全性。
参考操作步骤:
SQL Server配置管理器>>SQL Server网络配置>>MSSQLSERVER的协议,右键点击>>属性>>标志
把“强行加密”(ForceEncryption)设为“是”。
2.访问控制
2.1数据库角色分配最低权限
要求:应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限。
目的:根据用户的业务需要,配置其所需的最小权限。
参考操作步骤:
在“SQL Server管理器”>>“安全性”中,选中每个登陆用户,在右键菜单中选择“属性”,查看每个登陆用户的角色和权限,查看是否是该用户所需的最小权限。
1、更改数据库属性,取消业务数据库帐号不需要的服务器角色;
2、更改数据库属性,取消业务数据库帐号不需要的“数据库访问许可”和“数据库角色中允许”中不需要的角色。
2.2限制guest账户对数据库的访问
目的:取消guest账户对master和tempdb之外的数据库的访问权限。
参考配置操作:
方法一:打SQL Server管理界面,在左侧展开除了master和tempdb之外的所有数据库>>安全性>>用户,删除guest账户。
方法二:用命令去除guest账户对指定数据库的访问权限:
use 数据库名
exec sp_revokedbaccess guest
2.3设置身份认证
要求:应实现操作系统和数据库系统特权用户的权限分离。
目的:防止操作系统用户对SQL Server数据库进行非授权管理。
参考配置操作:
1.展开服务器组,右键单击服务器->在弹出的右键菜单中单击“属性”,在“安全性”选项卡中选择“服务器身份验证”认证方式为“SQL Server和Windows身份验证模式”。
2.在“SQL Server管理器”-〉“安全性”中,选择账号“BUILTIN\Administrators”,右击选择“属性”,更改“状态”设置“拒绝允许连接到数据库引擎”和“禁用登录”。
2.4删除或锁定多余账号
要求:应及时删除多余的、过期的账户,避免共享账户的存在。
目的:删除系统不需要的帐号,减少系统安全隐患。
参考配置操作:
SQL Server管理器->安全性->登录,询问数据库管理员每个账户的用途,查看是否存在多余的、过期的账户,点右键可选择删除。
3.安全审计
3.1启用日志记录功能
要求:审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户。
目的:数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP 地址。
参考配置操作:
1、在“SQL Server管理器”->右键单击服务器->单击“属性”->“安全性”,选择每个登录的“审核级别”为“失败和成功的登录”。
2、询问数据库管理员,是否采取第三方工具或其他措施增强SQL Server的日志功能,如果有则查看这些工具记录的审计记录是否符合等级保护的安全审计要求。
3.2设置日志目录权限
目的:限制日志所在目录的权限,防止对日志文件的非授权访问。
4.资源控制
4.1设置连接协议和监听的IP范围
要求:应通过设定终端接入方式、网络地址范围等条件限制终端登录。
目的:设定SQL Server允许的连接协议,以及TCP/IP协议中监听端口时绑定的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访问数据库。
4.2连接超时
要求:应根据安全策略设置登录终端的操作超时锁定。
目的:设置连接超时功能,提高数据库的性能。
参考配置操作:
1.从开始菜单打开SQL Server管理界面,再展开菜单栏的“工具”>>“选项”>>“设计器”>>“Analysis Services设计器”,在“连接”下的“连接超时值”输入合适的数字(默认值15)。
2.在SQL Server管理界面左侧,右键点击服务器名称>>属性>>高级,在右侧找到“远程登录超时值”,设置为合适的数字,
选项—连接属性—将连接超时值设置为一个较大的数字(默认值20)。
4.3限制远程用户连接数量
要求:应限制单个用户对系统资源的最大或最小使用限度。
目的:限制远程用户连接数量,确保数据库服务器稳定运行,提升性能。
参考配置操作:
在SQL Server管理界面左侧,右键点击服务器名称>>属性>>连接,设置“并发最大连接数”,如2500。
4.4内存限制
目的:使运行在服务器上的应用程序都能达到比较满意的效果,同时也为了能给其他应用程序保留足够的内存。
参考配置操作:
在SQL Server管理界面左侧,右键点击服务器名称>>属性>>内存,设置最小值和最大值在一个范围段内,如我们将它设置成最小0MB,最大为物理内存的80%左右。
5.最佳经验实践
5.1隐藏实例
目的:防止数据库系统的相关信息泄露。
参考配置操作:
在SQL Server配置管理器中选择“SQL Server 2005网络配置”中的“MSSQLSERVER的协议”,右键选择“属性”,选中其中的“隐藏实例”选项。
5.2修改默认通信端口
目的:修改默认通信端口,防止黑客通过1433登录数据库服务器。
参考配置操作:
在SQL Server配置管理器中选择“SQL Server 2005网络配置”中的“MSSQLSERVER的协议”,选中“TCP/IP”,右键选择“属性”,在TCP/IP属性对话框,选择“IP地址”选项卡,修改所有“TCP端口”右边的文本栏为新的要修改的端口号(默认端口号为1433),然后重启SQL Server生效。