2023年8月1日发(作者:)

SQLServer数据库安全配置基线加固操作指导书

佛山供电局信息中心

2014年4月 目录

1.1 SQLServer数据库安全基线要求 ...................................................................................... 3

1.1.1 应对登录操作系统的用户进行身份标识和鉴别 ......................................................... 3

1.1.2 禁止用Administrator或System用户启动数据库 ....................................................... 4

1.1.3 密码策略......................................................................................................................... 4

1.1.4 用户名的唯一性 ............................................................................................................. 5

1.1.5 应启用访问控制功能 ..................................................................................................... 5

1.1.6 管理用户的角色分配权限 ............................................................................................. 6

1.1.7 实现操作系统和数据库系统特权用户的权限 ............................................................. 6

1.1.8 删除多余账户 ................................................................................................................. 6

1.1.9 审计功能......................................................................................................................... 7

1.1.10 审计记录要求 ............................................................................................................... 7

1.1.11 安装最新补丁 ............................................................................................................... 8

1.1.12 删除默认安装数据库 ................................................................................................... 8

1.1.13 删除不必要的存储过程 ............................................................................................... 9

1.1 SQLServer数据库安全基线要求

1.1.1 应对登录操作系统的用户进行身份标识和鉴别

基线要求

基线标准

检查方法

加固方法

应对登录操作系统的用户进行身份标识和鉴别。

启用登陆功能,并进行密码验证,禁止通过操作系统直接登录。

尝试登录数据库,应出现登陆认证画面,只能以数据库账户登录。

控制台根目录下的SQL Server组/数据库,右建打开数据库属性,选择安全性,将安全性中的审计级别调整为“全部”,身份验证调整为“SQL Server 和Windows”

SQL Server 2000

SQL Server 2005

1.1.2 禁止用Administrator或System用户启动数据库

基线要求

基线标准

检查方法

禁止用Administrator或System用户启动数据库

启用数据库用户不应是Administrator或System用户

Mssql 企业管理器-> SQL Server 组 ->(Local)(Windows NT)-属性(右键)-安全性 查看启用服务器代理用户不应为Administrator或System用户

为SQLSERVER数据库建一个专门的操作系统用户启动数据库。(账户需要管理员权限)

加固方法

1.1.3 密码策略

基线要求

对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有账号的口令,确认为强口令。特别是 sa 账号,需要设置至少10 位的强口令

1、启用密码强制策略

2、密码长度8位,须有大小写字母与数字

3、禁用SA账户

1、启用密码强制策略

右击用户名->属性->常规,应勾选“强制实施密码策略”

2、密码复杂性策略参照Windows配置加固项

3、进入“SQLServer管理器->安全性->登陆名->sa(右键)->状态”,选择连接到数据库与禁用登录

基线标准

检查方法 加固方法

1、右击用户名->属性->常规,应勾选“强制实施密码策略”

2、口令策略的支持是基于Windows2003以上操作系统,使用操作系统本地安全策略中的密码策略,对该密码策略进行配置修改。(可参考Windows系统安全基线加固要求中对应的配置项)

3、进入“SQLServer管理器->安全性->登陆名->sa(右键)->状态”,选择连接到数据库与禁用登录

1.1.4 用户名的唯一性

基线要求

应为数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性

为每个管理员建立专门的实名制账户

使用select name from syslogins查看用名名,不存在相同的用户名。

为每个管理员添加专门的用户名,建议实名制。

进入“SQLServer管理器->安全性->登陆名(右键)->新建用户名”进行添加数据库用户名。

基线标准

检查方法

加固方法

1.1.5 应启用访问控制功能

基线要求

基线标准

检查方法

应启用访问控制功能,依据安全策略控制用户对资源的访问;

对重要文件启用访问控制功能

检查数据库安装、数据文件、备份等目录,windows则everyone用户没有写权限;

将数据库安装、数据文件、备份等目录,去除everyone用户的写权限;

加固方法 1.1.6 管理用户的角色分配权限

基线要求

应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;

合理分配用户权限

进入“SQLServer管理器->安全性->服务器角色->sysadmin(双击)”,查看sysadmin角色不包含应用账户。

将应用账户中从sysadmin角色中删除

基线标准

检查方法

加固方法

1.1.7 实现操作系统和数据库系统特权用户的权限

基线要求

基线标准

检查方法

应实现操作系统和数据库系统特权用户的权限分离

管理设有:系统管理员,安全管理员,安全审计员等。

访问管理员,设置数据库管理员的角色要有系统管理员,安全管理员,安全审计员等。

添加数据库的系统管理员,安全管理员,安全审计员。

加固方法

1.1.8 删除多余账户

基线要求

基线标准

检查方法

应及时删除多余的、过期的帐户,避免共享帐户的存在;

不存在多余账户

进入“SQLServer管理器->安全性->登录名”,查看用户,不存在多余用户

进入“SQLServer管理器->安全性->登录名”,查看用户,删除多余加固方法 用户

1.1.9 审计功能

基线要求

数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP 地址。

启用日志功能

查看SQL SERVER 服务器--“管理”--SQLSERVER 日志,应启用。

进入“SQL SERVER 服务器--管理--SQLSERVER 日志”,选择“启用”

基线标准

检查方法

加固方法

1.1.10 审计记录要求

基线要求

审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等.

能够记录重要用户行为,异常使用等相关事件,能够记录事件的日期,类型等信息

C:Program FilesMicrosoft SQL

Server90NotificationServices9.0.242bin

文件,value值应为3:

// SQL Server

Management Studio 和 nscontrol 实用工具事件

// NS$instanceName

Microsoft Windows 服务事件

//事件提供程序事件

// EventCollector

对象事件

//生成器事件

//分发服务器事件

// Vacuumer 事件

//所有其他组件(如标准内容格式化程序和传递协议)的事件

//性能监视器事件

C:Program FilesMicrosoft SQL

Server90NotificationServices9.0.242bin

文件,value修改为3:即记录管理组件的错误、警告和提示性事件

基线标准

检查方法

加固方法

重新启动 Notification Services 实例

1.1.11 安装最新补丁

基线要求

基线标准

检查方法

加固方法

应为数据库打最新的补丁包。

已是最新版本

查看sqlserver数据库版本,通过命令select @@version查看

下载补丁或者下载最新版本重新安装数据库。

KB2494120

1.1.12 删除默认安装数据库

基线要求

基线标准

检查方法

加固方法

应对已经被利用的公开数据库漏洞进行安全防护

分离pubs、NorthWind数据库。

在企业管理器上,点击数据库,不应存在pubs、NorthWind数据库

在企业管理器上,点击数据库,分别右建点击pubs和NorthWind数据库,选择

“所有任务”——“分离数据库”。#在以上命令执行不成功时所采用的操作步骤。

1.1.13 删除不必要的存储过程

基线要求

基线标准

检查方法

删除不必要的存储过程

不存在多余的存储过程

访问管理员是否存在不必要的较危险的存储过程,如:

sp_OACreate

sp_OADestroy

sp_OAGetErrorInfo

sp_OAGetProperty

sp_OAMethod

sp_OASetProperty

sp_OAStop

sp_regaddmultistring

xp_regdeletekey

xp_regdeletevalue

xp_regenumvalues

xp_regremovemultistring

除非应用程序需要否则以下存储过程也建议删除:xp_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 sp_sdidebug

xp_availablemedia xp_cmdshell

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_msver

加固方法

xp_deletemail

加固前系统库须备份

使用命令

use master

exec sp_dropextendedproc "xp_cmdshell"删除

2023年8月1日发(作者:)

SQLServer数据库安全配置基线加固操作指导书

佛山供电局信息中心

2014年4月 目录

1.1 SQLServer数据库安全基线要求 ...................................................................................... 3

1.1.1 应对登录操作系统的用户进行身份标识和鉴别 ......................................................... 3

1.1.2 禁止用Administrator或System用户启动数据库 ....................................................... 4

1.1.3 密码策略......................................................................................................................... 4

1.1.4 用户名的唯一性 ............................................................................................................. 5

1.1.5 应启用访问控制功能 ..................................................................................................... 5

1.1.6 管理用户的角色分配权限 ............................................................................................. 6

1.1.7 实现操作系统和数据库系统特权用户的权限 ............................................................. 6

1.1.8 删除多余账户 ................................................................................................................. 6

1.1.9 审计功能......................................................................................................................... 7

1.1.10 审计记录要求 ............................................................................................................... 7

1.1.11 安装最新补丁 ............................................................................................................... 8

1.1.12 删除默认安装数据库 ................................................................................................... 8

1.1.13 删除不必要的存储过程 ............................................................................................... 9

1.1 SQLServer数据库安全基线要求

1.1.1 应对登录操作系统的用户进行身份标识和鉴别

基线要求

基线标准

检查方法

加固方法

应对登录操作系统的用户进行身份标识和鉴别。

启用登陆功能,并进行密码验证,禁止通过操作系统直接登录。

尝试登录数据库,应出现登陆认证画面,只能以数据库账户登录。

控制台根目录下的SQL Server组/数据库,右建打开数据库属性,选择安全性,将安全性中的审计级别调整为“全部”,身份验证调整为“SQL Server 和Windows”

SQL Server 2000

SQL Server 2005

1.1.2 禁止用Administrator或System用户启动数据库

基线要求

基线标准

检查方法

禁止用Administrator或System用户启动数据库

启用数据库用户不应是Administrator或System用户

Mssql 企业管理器-> SQL Server 组 ->(Local)(Windows NT)-属性(右键)-安全性 查看启用服务器代理用户不应为Administrator或System用户

为SQLSERVER数据库建一个专门的操作系统用户启动数据库。(账户需要管理员权限)

加固方法

1.1.3 密码策略

基线要求

对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有账号的口令,确认为强口令。特别是 sa 账号,需要设置至少10 位的强口令

1、启用密码强制策略

2、密码长度8位,须有大小写字母与数字

3、禁用SA账户

1、启用密码强制策略

右击用户名->属性->常规,应勾选“强制实施密码策略”

2、密码复杂性策略参照Windows配置加固项

3、进入“SQLServer管理器->安全性->登陆名->sa(右键)->状态”,选择连接到数据库与禁用登录

基线标准

检查方法 加固方法

1、右击用户名->属性->常规,应勾选“强制实施密码策略”

2、口令策略的支持是基于Windows2003以上操作系统,使用操作系统本地安全策略中的密码策略,对该密码策略进行配置修改。(可参考Windows系统安全基线加固要求中对应的配置项)

3、进入“SQLServer管理器->安全性->登陆名->sa(右键)->状态”,选择连接到数据库与禁用登录

1.1.4 用户名的唯一性

基线要求

应为数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性

为每个管理员建立专门的实名制账户

使用select name from syslogins查看用名名,不存在相同的用户名。

为每个管理员添加专门的用户名,建议实名制。

进入“SQLServer管理器->安全性->登陆名(右键)->新建用户名”进行添加数据库用户名。

基线标准

检查方法

加固方法

1.1.5 应启用访问控制功能

基线要求

基线标准

检查方法

应启用访问控制功能,依据安全策略控制用户对资源的访问;

对重要文件启用访问控制功能

检查数据库安装、数据文件、备份等目录,windows则everyone用户没有写权限;

将数据库安装、数据文件、备份等目录,去除everyone用户的写权限;

加固方法 1.1.6 管理用户的角色分配权限

基线要求

应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;

合理分配用户权限

进入“SQLServer管理器->安全性->服务器角色->sysadmin(双击)”,查看sysadmin角色不包含应用账户。

将应用账户中从sysadmin角色中删除

基线标准

检查方法

加固方法

1.1.7 实现操作系统和数据库系统特权用户的权限

基线要求

基线标准

检查方法

应实现操作系统和数据库系统特权用户的权限分离

管理设有:系统管理员,安全管理员,安全审计员等。

访问管理员,设置数据库管理员的角色要有系统管理员,安全管理员,安全审计员等。

添加数据库的系统管理员,安全管理员,安全审计员。

加固方法

1.1.8 删除多余账户

基线要求

基线标准

检查方法

应及时删除多余的、过期的帐户,避免共享帐户的存在;

不存在多余账户

进入“SQLServer管理器->安全性->登录名”,查看用户,不存在多余用户

进入“SQLServer管理器->安全性->登录名”,查看用户,删除多余加固方法 用户

1.1.9 审计功能

基线要求

数据库应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号、登录是否成功、登录时间以及远程登录时用户使用的IP 地址。

启用日志功能

查看SQL SERVER 服务器--“管理”--SQLSERVER 日志,应启用。

进入“SQL SERVER 服务器--管理--SQLSERVER 日志”,选择“启用”

基线标准

检查方法

加固方法

1.1.10 审计记录要求

基线要求

审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件;审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等.

能够记录重要用户行为,异常使用等相关事件,能够记录事件的日期,类型等信息

C:Program FilesMicrosoft SQL

Server90NotificationServices9.0.242bin

文件,value值应为3:

// SQL Server

Management Studio 和 nscontrol 实用工具事件

// NS$instanceName

Microsoft Windows 服务事件

//事件提供程序事件

// EventCollector

对象事件

//生成器事件

//分发服务器事件

// Vacuumer 事件

//所有其他组件(如标准内容格式化程序和传递协议)的事件

//性能监视器事件

C:Program FilesMicrosoft SQL

Server90NotificationServices9.0.242bin

文件,value修改为3:即记录管理组件的错误、警告和提示性事件

基线标准

检查方法

加固方法

重新启动 Notification Services 实例

1.1.11 安装最新补丁

基线要求

基线标准

检查方法

加固方法

应为数据库打最新的补丁包。

已是最新版本

查看sqlserver数据库版本,通过命令select @@version查看

下载补丁或者下载最新版本重新安装数据库。

KB2494120

1.1.12 删除默认安装数据库

基线要求

基线标准

检查方法

加固方法

应对已经被利用的公开数据库漏洞进行安全防护

分离pubs、NorthWind数据库。

在企业管理器上,点击数据库,不应存在pubs、NorthWind数据库

在企业管理器上,点击数据库,分别右建点击pubs和NorthWind数据库,选择

“所有任务”——“分离数据库”。#在以上命令执行不成功时所采用的操作步骤。

1.1.13 删除不必要的存储过程

基线要求

基线标准

检查方法

删除不必要的存储过程

不存在多余的存储过程

访问管理员是否存在不必要的较危险的存储过程,如:

sp_OACreate

sp_OADestroy

sp_OAGetErrorInfo

sp_OAGetProperty

sp_OAMethod

sp_OASetProperty

sp_OAStop

sp_regaddmultistring

xp_regdeletekey

xp_regdeletevalue

xp_regenumvalues

xp_regremovemultistring

除非应用程序需要否则以下存储过程也建议删除:xp_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 sp_sdidebug

xp_availablemedia xp_cmdshell

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_msver

加固方法

xp_deletemail

加固前系统库须备份

使用命令

use master

exec sp_dropextendedproc "xp_cmdshell"删除