More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Ryan's SpacePhotosProfileFriendsMore Tools Explore the Spaces community

Ryan's Space

Getting the right information to the right person in the right condition at the right time.
June 15

SQL Server 2008 RC0中的Report Designer呢?

微软在在6月5日发布了SQL Server 2008 RC0,首先在MSDN和Technet订阅区放开下载,不过最近在Downloads站点也看到了下载。

这个周末得空装了一个RC0的环境,不过安装完了之后却发现原来在以前各个版本的CTP中的Report Designer不见了。百般搜索无果后突然在微软的下载站点找到了答案:原来CTP中的Report Designer已经被更名为Report Builder 2.0,作为SQL Server 2008 RC0 Feature Pack中的一部分,这个Report Builder 2.0必须从网上单独下载。

不过有人可能会有疑问,Report Builder不是利用Report Model设计报表的么,而且是在Report Manager中下载的么?

是的,不过那是Report Builder 1.0,Report Builder 1.0仍然可以在SQL Server 2008 Reporting Service内置的Report Manager站点上下载。SQL Server 2008提供单独下载的是Report Builder 2.0。

现在看界面可以初步确定的是Report Builder 1.0仍然用于设计基于Report Model的报表,而Report Builder 2.0应该是设计基于常规数据源的报表。

Report Builder 2.0

June 11

万恶的缩写

今天在看技术资料的时候发现了一个缩写——UBO,思前想后才明白UBO就是Usage Based Optimizer的缩写,因此突然感慨用缩写来发明新单词的办法不知道是谁起的头。顺便总结几个SQL Server 2005时代里面的缩写:

SQL Server 工具类所写:

  • SSMS:SQL Server Management Studio
  • BIDS:Business Intelligence Development Studio
  • DTA:Database Engine Tuning Advisor
  • SSAC:SQL Server Surface Area Configuration

SQL Server服务和产品的缩写:

  • SSAS:SQL Server Analysis Service
  • SSRS:SQL Server Reporting Service
  • SSIS:SQL Server Integration Service
  • FTS:FullText Search
  • SSCE:SQL Server Compact Edition
  • SSEE:SQL Server Express Edition
  • SSME:SQL Server Mobile Edition

大家要是想到什么缩写就跟上来补一下吧。

June 08

SQL Server 2008 RC0新的Logo

SQL Server 2008 RC0已经在6月5日发布啦,最先可以下载的是MSDN和Technet订阅用户,不过现在Download站点里面也可以下载到了。

感谢我的老婆第一时间帮我PS了SQL Server 2008的桌面,这个桌面在SQL Server开发组成员的Blog上面看到过,不过像素太小。

March 27

SQL Server 2008中的TDE

在SQL Server 2005中,我们得到了一个新的功能:数据加密,在SQL Server 2008中,这一功能得到了进一步的增强。除了SQL Server 2005中支持的Cell级加密外,现在SQL Server 2008加入了整库加密,微软称其为数据库透明加密Transparent Data Encryption(我们后面简称TDE)。相比SQL Server 2005的加密,TDE工作在SQL Server的IO层,因此开销更小,同时对应用程序的影响也降低到零。

因此在Windows Server 2008平台上,我们现在对数据库的数据加密保护手段已经有了4种,分别是:

  • Windows 2000开始加入的EFS功能
  • Windows Vista和Windows Server 2008开始的BitLockers
  • SQL Server 2005开始引入的Cell级加密
  • SQL Server 2008加入的TDE

关于这4项技术的对比会在稍后的帖子中讨论.

SQL Server的数据加密框架

先看一下SQL Server 2005的加密体系:

image

然后再看一下SQL Server 2008中的数据加密体系:

 

相比之下,SQL Server 2008的加密体系多出了TDE这条路径,就是上图中虚线部分,SQL Server 2008会通过DMK(Database Master Key数据库主密钥)直接加密数据文件,也可以通过EKM(Extensible Key Management外部密钥管理)直接加密数据文件。

SQL Server 2005与SQL Server 2008相同之处在于两者都是用Windows操作系统提供的DPAPI(Data Protection API数据保护应用开发接口)来保护SMK(Service Master Key服务主密钥),每个SQL Server的实例都拥有自己的SMK

EFS对SQL Server的性能影响主要原因是SQL Server在EFS加密文件上执行IO的时候IO操作是同步操作,也就是说如果SQL Server的工作线程需要一次IO就必须等到当前的文件IO结束,因此SQL Server中的Read Ahead机制和CheckPoint机制都会受到影响。关于这个问题的具体讨论可以参考微软支持网站的KB922121

SQL Server 2008基于策略的管理

SQL Server 2008通过引入可扩展的基于策略的管理功能降低了数据平台的管理工作量。其中最引人注意的莫过于提供策略化管理的Declarative Management Framework (简称DMF),不过这个名称已经被启用了,现在正是名字是基于策略的管理(Policy Based Management),我们姑且简称为PBM。PBM使DBA们可以制定管理策略,并将这些策略应用到服务器、数据库以及数据环境中的其他对象上去。经过精心设计的管理策略可以帮助DBA们对数据环境进行前摄性的管理。

PBM的优势体现在:

  • 按需管理:PBM提供了系统配置的逻辑视图,因此DBA们可以预先定义各自所需要的数据服务配置,而不用等到这些需要实际发生的时候再去配置。
  • 智能监控:PBM可以持续监控系统的配置变化,并阻止那些违反了策略的配置变化操作。
  • 虚拟管理:通过PBM,DBA们可以对多台服务器进行规模化管理,在企业内部统一实施某些强制性配置会变得更加方便。

基于策略管理的框架

PBM的框架有三部分组成:

  • 策略管理:管理员制定各种策略。
  • 显式管理:管理员通过对指定的目标或目标群应用策略来检查目标对策略的依从性,或者更严格的是禁止这些目标上违反策略的行为发生。
  • 执行模式:SQL Server 2008的PBM支持4种执行模式,这4种模式决定了策略对目标的影响程度。这四种模式分别是:
    • 按需(On Demand):这种模式下的策略可以有管理员自由的选择是否应用,例如管理员可以手动调用这些策略来检查目标的依从性,或者通过DDL Trigger来订阅这些策略。
    • 更新时阻止(On Change - Prevent):这是最严格的一种,SQL Server 2008通过DDL Trigger的方式在订阅该策略的目标上发生操作时实施检查操作对策略的符合性,如果违反策略则回滚该操作,以达到强制策略的效果。
    • 更新时记录(On Change - Log Only):SQL Server 2008通过Event Notification的机制在在订阅该策略的目标上发生操作时实施检查操作对策略的符合性,如果违反策略则发送消息,就将该违反操作通过Service Broker的队列发送进行记录。
    • 按计划(On Schedule):通过SQL Agent的作业来调用策略对目标对象进行检查。

虽然PBM有以上四种执行模式,但是归总起来其实是两大种,一种是基于SQL Agent作业方式的On Schedule模式,而另外一种是基于Event机制的On Change模式。因此并非所有Facet都支持On Change模式,要支持On Change模式,那么Facet的状态改变必须可以通过事件捕获或者事务性的DDL操作,当然On Schedule和On Demand就没有这些机制,因为这两种模式无需参与到Facet状态更新的事务中去。

基于策略管理的架构图

image

基于策略管理的术语

  • 对象(Facets):包括策略管理中某个方面的相关配置属性。例如在Surface Area中包括了像Database Mail Enabled以及CLR Integration Enabled之类的SQL Server功能的属性。
  • 条件(Conditions):表示一个方面的状态。条件是基于单个方面的,并且可以被一个或多个策略使用。例如,DBA可以建立一个名为Minimal Surface Area的条件,在这个条件中将Surface Area Facet中的所有属性都设置为False。
  • 策略(Policies):包括了用于约束单个或多个目标的条件。例如DBA可以创建一个名为Locked Down Server的策略,在这一策略中将Minimal Surface Area条件指派给某台服务器。
  • 类别(Categories):包含一条或多条策略。数据库拥有者可以将一个或多个分类绑定到数据库上。例如,DBA可以创建一个名为Corporate DB Policies的分类,其中包含一条强制数据库对象命名规则的策略和一条强制数据库兼容级别的策略,并将该分类绑定到业务数据库上。通常所有数据库都绑定到默认分类,但是可以在服务器或数据库级别上将分类设置为激活(Active)或暂停(Inactive),这样管理员就可以灵活控制策略的强制性。
  • 目标(Targets):目标代表像服务器、数据库、登录、表以及其他数据库对象各种被指派策略的实体。在一个SQL Server实例中的所有目标组成了一个目标层级。对于某个策略,DBA可以通过对目标层级进行筛选来定义一个目标集合。例如,DBA可以定义一个包含Production架构拥有的所有索引的目标集合。

为策略检查配置警报

如果某项策略被违反,SQL Server 2008会生成相应的警报,因此可以通过在SQL Agent中配置警报来监控这些事件,

执行模式 事件号

On Change - Prevent
(if automatic)

34050

On Change - Prevent
(if On Demand)

34051
On schedule 34052
On change

34053

策略管理的安全性

属于PolicyAdministratorRole的成员才可以制定和修改策略定义,这个角色的成员是必须要小心控制的,因为恶意用户可以通过制定苛刻的策略来达到类似于拒绝服务攻击的效果。

基于策略管理的配置

基于策略管理的常规配置步骤为:

  1. 根据Facet创建Condition,Condition可以作为Policy的检查条件,也可以是用于确定策略应用范围的筛选条件。
  2. 引用已经创建好的策略来定义策略,同时可以在策略检查条件可以应用的对象集上附加筛选条件,例如一个检查Multiple Part Name对象状态的策略就可以有表、存储过程、视图、同义词等一系列的对象可以进行选择并附加筛选条件,默认的筛选条件是Every,也就是这个对象集中所有的对象。当然不是所有条件都可以充当筛选条件的,在二月CTP的测试中就发现包含LIKE运算符的表达式的条件就不能充当筛选条件。
  3. 如果需要可以在Server Restriction中定义需要应用策略的SQL实例条件。
  4. 如果需要还可以在Policy Management节点上定义策略组,并在策略的定义中将策略归入某个类别,然后由服务器管理员或数据库拥有者订阅某个策略组。不过要注意看看我的前一个帖子,默认策略组都是强制订阅的,要启用自选订阅要在策略组管理中设置。
  5. 然后就等着策略帮你自动管理SQL Server了,这就看策略定义时选择的执行模式了。
View more entries
 
Updated 6/16/2008
Updated 4/9/2008