SQLServer数据库安全配置规范
SQLServer 数据库安全配置规范
1. 概述
1.1. 目的
本规范明确了SQL Server数据库安全配置方面的基本要求。为了提高SQL Server 数据库的安全性而提出的。
1.2. 范围
本规范适用于XXXX 使用的SQL Server数据库版本。
2. 配置标准
2.1. 补丁
2.1.1. 安装数据库最新补丁
【目的和操作】连接微软SQLServer 网站,获得各个最新的补丁包和补丁集合。
2.2. 网络配置
2.2.1. 隐藏服务器
【目的和操作】在企业管理器中选择数据库服务器的属性,网络配置,TCP/IP属性,选中其中的“隐藏服务器”选项。
该操作可以通过设置IPSE 策略过滤UDP1434端口完成。
2.2.2. 去掉不必要的协议
【目的和操作】默认情况下,SQLSERVER同时安装TCP/IP和管道,在企业管理器中选择数据库服务器的属性,网络配置,删除管道。
【影响】首先确认用户或者应用程序不使用管道来通讯。只使用Windows 进行身份验证并需要远程维护必须使用管道。
2.2.3. 改变默认通信端口
【目的和操作】在企业管理器中选择数据库服务器的属性,网络配置,TCP/IP属性,默认情况下是TCP 1433端口,请修改该端口为新的端口。
再使用Windows 的IPSEC 安全策略,禁止非允许的IP 地址访问此端口。 【影响】影响使用默认端口的远程访问,要求用户先确认不影响其他操作。
2.2.4. 使用通讯协议加密
【目的和操作】使用SSL 加密协议。
【影响】影响使用默认端口的远程访问,要求用户先确认不影响其他操作。
2.2.5. 网络连接访问控制
【目的】在操作系统或者相应的网络设备上设置网络访问控制 【具体配置】
1、禁止非数据库应用系统IP 连接UDP1434、TCP1433(或者修改后的通讯端口)的连接
2、禁止非数据库应用系统IP 连接TCP445/139端口的连接。 【影响】根据需要选择。会影响普通的数据库连接。
2.3. 审核设置
2.3.1. 设置审核级别
【目的】设置SQL Server的审核选项。 【具体配置】
展开一个服务器组。右击一个服务器,再单击" 属性" 。在" 安全性" 选项卡的" 身份验证" 下,在" 审核级别" 中选择在 SQL Server 错误日志中记录的用户访问 Microsoft SQL Server 的级别:" 全部" 表示审核成功的和失败的登录尝试。
2.3.2. 设置日志目录权限
【目的】限制日志目录的权限,防止对日志目录的非授权访问。 【具体配置】
日志通常保留在:SQL Server安装目录\MSSQL\LOG\
设置目录权限为:administrator, system(完全控制),如果有服务账号,也加上服务账号的权限。 【影响】
如果SQL Server服务不是以localsystem 而是以其他账号运行,那么也设置该账号有完全控制的权限
2.4. 帐号安全
2.4.1. 设置身份认证
【目的】恰当设置SQL Server的验证选项。 【具体配置】
展开一个服务器组。右击一个服务器,再单击" 属性" 。在" 安全性" 选项卡的" 身份验证" 下,单击" 仅 Windows"。 【影响】
仅WINDOWS 方式安全性高,但是将不能使用数据库账号进行登录和连接。确认后才能实施。
2.4.2. 加强用户口令
【目的】加强数据库用户口令的强度。 【具体配置】
修改目前所有账号的口令,确认为强口令。特别是sa 账号,需要设置至少10位的强口令。
2.4.3. 删除多余帐号
【目的】确认目前使用的帐号,删除无用帐号。
2.5. 数据库目录保护
2.5.1. 数据库目录权限设置
【目的】加强数据库目录的权限管理。 【具体配置】
设置整个数据库的安装数据库目录(比如:C:\SQLServer)的权限:
设置目录权限为:administrator, system(完全控制),如果有服务账号,也加上服务账号的权限。
2.6. 管理扩展存储过程
【目的】加强存储过程的安全管理。 【具体配置】
首先确认下面的扩展存储过程不会被使用,然后删除下面的这些存储过程。
去掉xp_cmdshell扩展存储过程,使用: use master
sp_dropextendedproc 'xp_cmdshell'
同上类似语句,删除以下的扩展存储过程:
Sp_OACreate、Sp_OADestroy、Sp_OAGetErrorInfo Sp_OAGetProperty、Sp_OAMethod、Sp_OASetProperty Sp_OAStop
Xp_regaddmultistring
Xp_regdeletekey、Xp_regdeletevalue Xp_regenumvalues
Xp_regremovemultistring、Xp_sdidebug、xp_availablemedia、xp_cmdshell、xp_deletemail、xp_dirtree、xp_dropwebtask xp_dsninfo、xp_enumdsn、xp_enumerrorlogs
xp_enumgroups、xp_enumqueuedtasks、xp_eventlog xp_findnextmsg、xp_fixeddrives、xp_getfiledetails xp_getnetname、xp_grantlogin、xp_logevent xp_loginconfig、xp_logininfo、xp_makewebtask xp_msverxp_perfend、xp_perfmonitor
xp_perfsample、xp_perfstart、xp_readerrorlog xp_readmail、xp_revokelogin、xp_runwebtask
xp_schedulersignal、xp_sendmail、xp_servicecontrol xp_snmp_getstate、xp_snmp_raisetrap、xp_sprintf xp_sqlinventory、xp_sqlregister
xp_sqltrace、xp_sscanf、xp_startmail
xp_stopmail、xp_subdirs、xp_unc_to_drive、xp_dirtree
2.7. 其他设置
2.7.1. 降低SQLServer 服务的运行权限
【目的】SQL Server服务不以localsystem 而是以其他系统账号运行。
【具体配置】
可以在系统中新创建一个users 组的账号,在sqlserver“服务”属性中,以该账号运行。
【影响】可能造成某些功能失效。