SQL Server 2008中进行安全性策略管理
SQL Server 2008中进行安全性策略管理
http://tech.sina.com.cn/b/2009-12-03/05141158273.shtml
SQL Server 2008中进行安全性策略管理
[商用频道] | [企业采购] | [办公打印] | [投影机] | [服务器] | [网络与安全] | [电脑] | [软件及服务] |
第1页:策略管理常规配置步骤
导语:相较于前一个SQL Server 2005版本,SQL Server 2008推出的时间并没有让使用者等待太久,这款在安全、管理、开发以及系统效能进行了强化,除此之外,也加强与Office 2007的整合,而其中策略管理是SQL Server 2008中的一个新特性。
策略管理是SQL Server 2008中的一个新特性,用于管理数据库实例、数据库以及数据库对象的各种属性。在这种管理下,用户基于策略管理获取两个方面是应用:有效评估、监视以及管理应用。而在有效的管理应用条件下,安全是最为重要的,下面针对策略管理的安全性进行实战。
策略管理的安全性
数据库角色
属于Policy Administrator Role的成员才可以制定和修改策略定义,这个角色的成员是必须要小心控制的,因为恶意用户可以通过制定苛刻的策略来达到类似于拒绝服务攻击的效果,这个方面与其他数据库相类似。
基于策略管理的常规配置步骤为:
·根据Facet创建Condition,Condition可以作为Policy的检查条件,也可以是用于确定策略应用范围的筛选条件。
·引用已经创建好的策略来定义策略,同时可以在策略检查条件可以应用的对象集上附加筛选条件,例如一个检查Multiple Part Name对象状态的策略就可以有表、存储过程、视图、同义词等一系列的对象可以进行选择并附加筛选条件,默认的筛选条件是Every,也就是这个对象集中所有的对象。当然不是所有条件都可以充当筛选条件的,在二月CTP的测试中就发现包含LIKE运算符的表达式的条件就不能充当筛选条件。
·如果需要可以在Server Restriction中定义需要应用策略的SQL实例条件。
·如果需要还可以在Policy Management节点上定义策略组,并在策略的定义中将策略归入某个类别,然后由服务器管理员或数据库拥有者订阅某个策略组。不过要注意看看我的前一个帖子,默认策略组都是强制订阅的,要启用自选订阅要在策略组管理中设置。
·然后就等着策略帮你自动管理SQL Server了,这就看策略定义时选择的执行模式了。
这里面值得注意的是:管理员需要确保服务器上所有数据库中的存储过程都是加密过的。
第2页:策略管理创建和应用
1. 创建条件(Condition)
点击“新建条件”
输入名称,在“方面”里面选择“存储过程”
在表达式中,“字段”中选择“@IsEncrypted”,“值”设置为True(默认为True),如果有其他应用更具需要设置,这里直接点击“确定”关闭“创建新条件”对话框。我们可以在对象资源管理器中看到新增加的一个条件。
2. 创建一个策略(Policy)
创建策略
存储过程加密
输入一个名称,并且在“检查条件”中选择刚才创建号的“存储过程是否加密”这个条件。默认情况下,会有另外一些设置。如下图:
在这里先不对其他选项做任何设置。直接点击“确定”退出该对话框
3. 启用该策略
启用创建策略
策略创建好之后,默认是没有启用的。我们必须通过菜单进行启用。同时有了这么一个策略,验证某个数据库中的存储过程是否满足该策略的要求。
选择刚才创建好的策略,然后右键菜单中点击“评估”
这个工具就会检测当前服务器上面所有数据库中的所有存储过程是否已加密。在上面的对话框中,还可以点击“导出结果”得到一个xml文件。
此外,用户还可以直接针对某个特定的存储过程进行评估。
5. 使用策略进行主动监控。
与评估不同,监控则有主动性。例如,如果我们在服务器上启用了该策略,那么任何存储过程在被增加或者修改的时候,我们就可以主动干预,确保它必须加密。
第3页:策略管理中评估模式
对于SQL Server 2008的策略管理功能而言,它支持4种执行模式决定了策略对目标的影响程度。我们再来看一下评估模式,主要分为两大类:“按需”和“按计划”这两种很类似,都是作为评估用的。他们的评估结果大多数通过“查看历史记录”的方式进行查看的。他们的区别只是在于“按计划”是一个排好的日程,定期自动做的,而“按需”是全靠手工地做。
评估过程
而“更改时:仅记录”和“更改时:禁止”则带有主动性。
两者的区别在于前者仅仅做记录,而后者可以明确地阻止用户的操作。
使用“更改时:禁止”这种评估模式进行工作。
我们要实现的需求就是,如果用户新建存储过程,不进行加密,就不允许保存。
评估模式更改
我们首先将策略的评估模式更改为“更改时:禁止”,并且选中“已启用”的复选框。然后点击“确定”,接下来,我们尝试去创建一个很简单的存储过程。
这个语句太平常不过了。也没有任何问题。然后我们点击F5,执行代码
策略的其他好处
通过使用策略进行评估或者监视的过程。那么,对于其他的需要我们通过策略管理另一个功能创建策略更好实现一次定义,多次使用。
导出策略
通过功能管理把策略导出,导出的是一个XML文件。里面包含了有关条件和策略的定义。下面来通过导入策略的方式来部署。
导入策略
最后,选中“存储过程必须经过加密”这个策略,右键菜单中选择“评估”,它可以正常工作,这证明我们导入是成功的。
相对策略管理,SQL Server 2008还引入了一些新的工具和一些新的特性能够帮助IT人员实现系统性能的提高,监控和优化。同时它还可以使用一些工具监控整个IT系统的使用情况,帮助数据管理员进一步优化和调整数据库整体的性能,相关应用会陆续介绍。
CREATE PROC testpolicy AS SELECT 1
“SQLSERVER:\SQL\BARFOOYF_61\DEFAULT\Databases\master\StoredProcedures\dbo.testpolicy”已违反策略“存储过程是否加密”。
此事务将回滚。
策略条件:“@IsEncrypted = True()”
策略说明:“”
其他帮助:“”:“”
语句:“CREATE PROC testpolicy
AS
SELECT 1”。
消息 3609,级别 16,状态 1,过程 sp_syspolicy_dispatch_event,第 65 行
事务在触发器中结束。批处理已中止。
原理:在服务器级别创建服务器触发器
只要把服务器触发器删除了就可以了