一、配置外围应用的目的
只要有足够的时间,任何人最终都能突破任何安全机制。安全机制的目标是提供足够多的障碍,使攻击一个系统的投入超过回报。配置SQL Server外围应用的目的,是尽可能使SQL Server启用的功能减小到最小程度,尽量减少攻击点的数量。
外围应用主要有两类,一类是针对连接,另一类是针对功能。SQL Server 2005提供了专门的图形化界面。
SQL Servr 2005 外围应用配置器
二、SQL Server 2008的改动
SQL Server 2008删除了“SQL Server 2005外围应用配置器”图形化界面,官方的解释为:
1. 针对服务和连接的配置,已经集成在SQL Server配置管理器(SSCM)。
2. 针对功能的配置,只可以使用sp_configure脚本。
三、使用sp_configure
1. 开启高级选项
默认情况下,sp_configure只可以查看和修改当前实例的基本选项。使用以下脚本,开启高级选项。
EXEC sp_configure 'show advanced options',1 GO RECONFIGURE WITH OVERRIDE GO EXEC sp_configure GO
2. 打开或关闭某选项
例如,打开CLR功能、禁用OLE automation procedures功能。
EXEC sp_configure 'clr enabled',1 EXEC sp_configure 'Ole Automation Procedures',0 GO RECONFIGURE WITH OVERRIDE GO
四、关于部分功能的说明
1、OLE Automation
此过程提供与之前版本的一些基本交互功能。SQL Server 2005推荐使用CLR(公共语言运行时)。两者的主要区别在于:CLR例程是在一个受保护的内存空间中运行,不会破坏SQL Server内存栈,而OLE Automation就可能造成这个破坏。
旧版本的任何应用程序如果需要使用OLE Automation服务,就应该使用VB .net或C#进行重写。
2. SQL Mail XPs
此功能是为了向后兼容。推荐使用database mail(数据库邮件)。
3. CDOC(cross db ownership chaining,跨数据库所有权链)
此功能允许在数据库之间转移所有权。一经启用,数据库的所有者相当于放弃控制权,把它移交给另一个数据库的所有者。
4、即席分布式查询(Ad Hoc Distributed Queries)
OpenRowset和OpenDatasource允许在代码中嵌入安全凭据,从而在SQL Server中发起到另一个实例的连接,这会造成潜在的风险。只有当应用程序和脚本调用这些函数时,才启用“即席分布式查询”功能。推荐使用链接服务器。
5. xp_cmdshell
这是一个扩展存储过程,允许从数据库引擎内运行操作系统命令。由于此功能启用后,可以执行任何操作系统命令,一旦SQL Server管理员帐号被攻破,那么攻击者就可以利用xp_cmdshell执行操作系统命令,例如:创建系统管理员等。
转载文章地址:http://bbs.51cto.com/thread-1075800-1.html