MS SQL Server 数据库基准安全配置标准目录1. 将SQL SERVER身份验证设置为仅限WINDOWS (2)2. 安装最新的补丁更新程序 (2)3. 优化服务 (2)4. 限制SQL SERVER 只采用TCP/IP (3)5. 帐户 (3)5.1. 使用最低权限帐户运行SQL S ERVER (3)52 为SA帐号设置强壮的口令 (3)53 删除SQL来宾用户帐户 (5)54 删除BUILTIN\A DMINISTRATORS 服务器登录 (5)5.5. 不为公共角色授予权限 (5)6. 文件和目录 (5)6.1. 验证对SQL S ERVER安装目录的访问权限 (6)6.2. 验证E VERYONE组是否不具有对SQL S ERVER文件的访问权限 (6)63 保证安装日志文件的安全 (7)7. SQL SERVER 数据库对象 (7)7.1. 删除示例数据库 (7)7.2. 保证存储过程的安全 (7)7.3. 限制CMD E XEC对SYSADMIN角色的访问权限 (9)8. 审核和日志 (11)1.将SQL Server身份验证设置为仅限Windows应当对SQL Server进行配置,使其支持仅限Win dows身份验证,因为这种验证方式有诸多优点。
不必在网络上传送凭据;可避免在数据库连接字符串中嵌入用户名和密码;更易于进行安全管理,因为只需要与一个Windows安全模块而不是另外的SQL Server安全模块打交道;密码到期期间的登录安全性得到提高;最低限度的长度要求及帐户锁定策略。
2. 安装最新的补丁更新程序包括最新的Windows操作系统以及SQL Server的Service Pack。
3. 优化服务SQL服务安装程序运行期间将安装以下四个Windows服务:MSSQLSERVER(对于命名实例,则为MSSQL$InstanceNam©。
此为SQLServer数据库引擎,是唯一的强制安装服务。
SQLSERVERAGENT (对于命名实例,则为SQLAgent$lnstanceName)。
可借助此支持服务制定命令执行计划及在出错时通知操作人员。
MSSQLServerADHelper。
它可提供Active Directory集成服务,包括数据库实例注册。
Microsoft Search。
它可提供全文搜索能力。
在任何情况下均须通过本地系统帐户来运行此服务。
只有MSSQLSERVER数据库引擎是必备的。
其余服务提供了附加功能,只在特定情况下才需要使用。
如并非必需,请禁用这些服务。
注意:不应将SQL Server配置为以本地系统帐户或本地Administrators组的任何成员帐户运行。
4.限制SQL Server 只采用TCP/IP禁用“ SQL Server网络实用工具”中除TCP/IP外的所有协议。
SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Win dows 2000提供了这样的安全机制。
使用操作系统自己的IPSec可以实现IP数据包的安全性。
请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,把来自网络上的安全威胁进行有效的控制。
5.帐户5.1. 使用最低权限帐户运行SQL Server使用最低权限帐户运行SQL Server服务可将设法从SQL Server执行操作系统命令的攻击者所造成的危害降至最低水平。
不应为SQL Server服务帐户授予诸如Administrators组成员身份等较高特权。
5.2. 为SA帐号设置强壮的口令默认系统管理员(sa)帐户一直是无数攻击的目标。
它是SQL Server管理固定服务器角色sysadmin的默认成员。
请确保对此帐户使用强密码。
注意:应对所有帐户,尤其是特权帐户(如sysadmin和db_owner角色的成员) 均使用强密码。
如果使用复制,请给用于与远程分布式服务器建立连接的distributor_admin帐户也使用强密码。
具体实施步骤:1、打开sqlserver企业管理器i.沖轻■•白岸ffrM 曲衣鬧厂Hf?■汁崔Wt ■空穴珂 3r ・Z ]《SQL Server 基准安全配置标准》 第4页共13页 t 側自中四凶MPtHHHmd gro iw I 」・峠I 旳IWl bE)辱I 瞬|j 宰丨塾iBkfli BE ・*knri<j(l 逆 iciraa I TH USmSegrSl竊戸旨 ||j 甦 辛 % Jhb^Qt So**1" Mnpw Hfl... 迥总■ JJt«32、单击“安全性”的登录3 、修改sa 用户口令叫 ZT S SS M S 日 Cy 三甘玛'SflTEit E tb 口测 柯 j sa* ・ _j HfiRnUfi W _IM 田Off*_ v :xE JEM I£ ^K4^ r 」]★耐蒼H ;? >tw.Ba ・H4 -I *ffl*专 _| PM ■匸・■ Sen :■尹 0 眉 | 唁 5QI S TIVT Ript — H ■… 数据库管理员应该定期查看是否有不符合密码要求的帐号。
比如使用下面的SQL 语句:Use masterSelect n ame,Password from syslog ins where password is n ull-jsufeifln*HH1心JW |」4峠|旳[Bl X 害睜|曹|]宰|塾|・@電[3 1耳at>•马4追月 I BL^KK I 叫话茗 IB 刚L r 村曲仙汨w 剛仟町 C- fhrww 頭丄*|r IT : *4台|工> WO I ^I MRhn Vl 2-tTtH5.3. 删除SQL来宾用户帐户如果启用了Windows 2000的来宾帐户,则安装SQL Server时会创建一个来宾用户帐户。
如果登录有对SQL Server的访问权限,但没有通过数据库用户帐户对数据库进行访问的权限,则登录便会具有来宾的身份。
好的做法是禁用Windows的来宾帐户。
此外,还要从所有用户定义数据库中删除来宾帐户。
请注意,无法从master, tempdb、复制及分发数据库中删除来宾帐户。
5.4. 删除BUILTIN\Administrators 服务器登录默认情况下,系统会将BUILTIN\Administrators 本地Windows组添加到sysadmin 固定服务器角色,以对SQL Server进行管理。
这意味着作为BUILTIN\Administrators成员的域管理员可以不受限制地访问SQL Server数据库。
大多数公司会对域管理员和数据库管理员角色加以区分。
如果要进行这种区分,请删除BUILTIN\Administrators SQL Server 登录。
5・5・不为公共角色授予权限所有数据库均包含一个公共数据库角色。
每个其他用户、组和角色都是该公共角色的成员。
您无法删除公共角色的成员,不过,可以不为授予对应用程序的数据库表、存储过程及其他对象访问权限的公共角色授予权限。
否则,便无法利用用户定义的数据库角色获得所需授权,因为公共角色会为数据库中的用户授予默认权限。
6. 文件和目录除利用ACL保证操作系统文件的安全外,还要强化NTFS权限来限制对SQL Server程序文件、数据文件、日志文件以及系统级工具的访问。
此外,还应只允许SQL Server服务帐户访问其所需的内容。
6.1.验证对SQL Server安装目录的访问权限根据下表中所列的权限对SQL Server服务所赖以运行的帐户进行验证。
括号中指定的位置为默认安装位置,可能会视安装的具体情况而不同。
如果使用企业管理器”来设置SQL Server服务帐户,它将为帐户授予对SQL Server 安装目录及所有子文件夹('Program Files'Microsoft SQL Server\MSSQL\*) 的完全控制”权限。
取消对该文件夹及其所有子文件夹的写入授权,然后有选择性地授予对数据、错误日志、备份及作业文件目录的完全控制权限,便可使新帐户无法覆盖SQL Server二进制文件。
6.2.验证Everyone组是否不具有对SQL Server文件的访问权限不应使Everyone组具有对SQL Server文件位置(默认情况下为\ProgramFiles\Microsoft SQL Server\MSSQL)的访问权限,这可通过验证Everyone 组并未经ACL获得访问权限和只为SQL Service帐户、Administrators组及本地系统帐户提供显式完全控制来实现。
6・3・保证安装日志文件的安全安装SQL Server 2000 Service Pack 1或2后,系统管理员或服务帐户的密码可能会遗留在SQL安装目录中。
请使用Killpwd.exe实用程序从日志文件中删除密码实例。
7. SQL Server数据库对象SQL Server提供了两个用于开发和训练的示例数据库以及一系列内置存储过程和扩展存储过程。
不应将示例数据库安装在生产服务器上,并应保证功能强大的存储过程和扩展存储过程的安全。
7.1.删除示例数据库使用SQL Server企业管理器来删除任何示例数据库。
默认情况下,SQL Server 包含Pubs和Northwind示例数据库。
72保证存储过程的安全限制对应用程序的存储过程的访问。
请不要为公共角色或来宾用户授予对所创建的任何存储过程的访问权限。
保证存储过程安全的主要防线先是要确保使用强身份验证,然后是提供精确授权,从而实现只允许必要的用户权限来运行存储过程。
建议的做法是:为应用程序创建一个SQL Server登录,将登录映射到数据库用户,再将用户添加到用户定义数据库角色,然后为角色授予权限。
打开sql查询分析器,粘贴如下的内容到分析器:use masterexec dropexte ndedproc "xp_availablemedia"exec dropexte ndedproc "xp_e nu mgroups"exec dropexte ndedproc "xp_e nu mds n"exec dropexte ndedproc "xp_dirtree"exec dropexte ndedproc "dbo.xp_makecab"exec dropexte ndedproc "xp_ un packcab"exec dropexte ndedproc "xp_ ntsec_e nu mdomai ns"exec dropexte ndedproc "xp_term in ate_process"exec dropexte ndedproc "xp_serviceco ntrol"exec dropexte ndedproc "dbo.xp_subdirs"exec dropexte ndedproc "xp_cmdshell"exec sp_dropexte ndedproc 'Xp_regaddmultistri ng'exec sp_dropexte ndedproc 'Xp_regdeletekey'exec sp_dropexte ndedproc 'Xp_regdeletevalue'exec sp_dropexte ndedproc 'Xp_rege num values'exec sp_dropexte ndedproc 'Xp_regread'exec sp_dropexte ndedproc 'Xp_regremovemultistri ng'exec sp_dropexte ndedproc 'Xp_regwrite'exec dropextendedproc "xp_regwrite"〃删除打部分reg 打头的过程exec sp_dropexte ndedproc 'Sp_OACreate'exec sp_dropexte ndedproc 'Sp_OADestroy'exec sp_dropexte ndedproc 'Sp_OAGetErrorl nfo'exec sp_dropexte ndedproc 'Sp_OAGetProperty'exec sp_dropexte ndedproc 'Sp_OAMethod'exec sp_dropexte ndedproc 'Sp_OASetProperty'exec sp_dropextendedproc 'Sp_OAStop'〃删除大部分oa 打头的过程exec sp_dropexte ndedproc 'xp_e nu mgroups'exec sp_dropexte ndedproc 'xp_fixeddrives'exec sp_dropexte ndedproc 'xp_logi neon fig'exec sp_dropexte ndedproc 'xp_e nu merrorlogs'exec sp_dropexte ndedproc 'xp_getfiledetails'drop procdure sp_makewebtaskGo7.3.限制cmdExec对sysadmin角色的访问权限SQL Server代理使用cmdExec函数来执行Windows命令行应用程序和其排定的脚本。