`
cjc
  • 浏览: 681053 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL Server 2008新特性——策略管理

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

策略管理是SQL Server 2008中的一个新特性,用于管理数据库实例、数据库以及数据库对象的各种属性。策略管理在SSMS的对象资源管理器数据库实例下的“管理”节点下,如图:

image

从图中可以看到,策略管理中包含三个节点:策略、条件、方面。

方面就是策略要应用的对象,包括:服务器、表、触发器、视图、存储过程……这些方面对象都是系统定义好了的,仅供瞻仰不可更改。双击具体的某一个方面可以查看该方面的属性,在定义条件时即可对这些属性进行判断,如图为存储过程方面的属性。

条件就是一个布尔表达式判断策略是否为真。

策略就是在条件为假的情况下要执行的操作,即评估模式。策略中的评估模式有4种:按需、按计划、更改时记录和更改时禁止。对于这4种模式,官方给出如下定义:

  • 按需。当用户直接指定这种模式时,它可对策略进行评估。
  • 更改时: 禁止。这种自动模式使用 DDL 触发器来防止违反策略。
  • 更改时: 仅记录。当发生相关更改并违反日志策略时,这种自动模式使用事件通知对策略进行评估。
  • 按计划。这种自动模式使用 SQL Server 代理作业定期对策略进行评估。此模式记录违反策略的情况。
  • 其中按需是手动操作的,其他三个则可以自动完成。按计划是使用SQL Server代理来定时检查策略,另外两个是在更改时由DDL触发器触发。

    其他的概念我不用多说,大家可以看联机丛书,这里就举个例子来说明策略管理的使用。

    假设现在我们要开发个业务系统,其数据库为TestDB1,使用ADO.NET 调用存储过程来实现数据操作,现在项目中规定存储过程的命名规范:以“usp_”开头。这里我们可以使用策略管理来实现对该规范的检查或强制实行。具体操作过程如下:

    (1)由于我们针对的对象是存储过程,所以在“方面”节点下右击“存储过程”,选择“新建条件”选项,系统将会弹出新建条件的窗口。

    (2)输入“条件”的名称:“存储过程命名规范”,然后字段列表中选择@Name,运算符为LIKE,值为'usp[_]%'。也就是判断存储过程的名字LIKE 'usp[_]%',也就是以“usp_”开头的SQL表达。如图:

    image

    这里字段和值都可以使用变量和函数,如果允许“USP_”、“Usp_”等开头的存储过程,则可以将字段运用小写函数,改写为“Lower(@Name)”,然后单击“确定”按钮,创建“条件”完成。

    (3)右击“策略”节点,在右键菜单中选“新建策略”选项,系统将打开新建策略窗口,输入策略名“检查存储过程命名规范”,在检查条件的下拉列表中 选择刚创建的条件“存储过程命名规范”,系统将根据选择的检查条件列出针对目标,默认情况下是对每个数据库的每个存储过程进行检查,由于这里我们只希望检 查TestDB1数据库,所以需要新建数据库的条件,如图:

    image

    (4)单击“新建条件”后将出现与第(2)步新建条件相同的窗口,只是这里我们新建的条件方面是数据库,新建条件TestDB1,如图所示:

    image

    (5)单击“确定”按钮回到新建策略窗口,针对目标变成了对TestDB1数据库的每个存储过程。这里若要强制实现这个策略,则选择评估模式为“更改:禁止”并选中“已启用”复选框表示启用该策略。

    (6)单击“说明”选择页,可以在其中选择策略的类别、在违反策略时给出的友好说明。最后单击“确定”按钮即可完成策略的创建工作。

    (7)接下来就是测试该策略是否有效了,运行如下SQL语句创建一个存储过程usp_GetDate:

    <!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->USETestDB1
    GO
    CREATEPROCusp_GetDate
    AS
    SELECTGETDATE()
    GO

    一切正常,存储过程被创建成功。那么再创建一个存储过程db1_GetDate:

    <!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->USETestDB1
    GO
    CREATEPROCdb1_GetDate
    AS
    SELECTGETDATE()
    GO

    哈哈,系统抛出异常了:

    “SQLSERVER:\SQL\MS-ZY\DEFAULT\Databases\TestDB1\StoredProcedures\dbo.db1_GetDate”已违反策略“检查存储过程命名规范”。
    此事务将回滚。
    策略条件:“Lower(@Name) LIKE 'usp[_]%'”
    策略说明:“项目中统一了TestDB1数据库中存储过程的命名规范,所有存储过程必须以usp_开头”
    其他帮助:“存储过程必须以usp_开头”:“”
    语句:“CREATE PROC db1_GetDate
    AS
    SELECT GETDATE()
    ”。
    消息 3609,级别 16,状态 1,过程 sp_syspolicy_dispatch_event,第 65 行
    事务在触发器中结束。批处理已中止。

    再看看对象资源管理器中,该存储过程确实没有被创建。同样可以在另外的数据库中创建这两个存储过程,但是由于策略中针对的是TestDB1数据库,所以在其他数据库中这两个存储过程都将会被成功创建。

    现在有了这个策略,大家在命名存储过程时都必须按照规范来了。

    如果策略被定义为“按需”评估模式的话,则用户可以在其中创建违反策略的存储过程。若要检查现有的数据库对象是否符合策略,只需要在对象资源管理器 中右击数据库对象节点,然后选择右键菜单中的“策略”下的“评估” 选项,如果要检查具体某个数据库对象的“方面”属性值的话,则选择右键菜单中的“方面”选项。

    选择“评估”选项后系统弹出评估策略窗口,其中列出了所有存储过程方面相关的策略,选择需要验证的策略,然后单击“评估”按钮即可查看当前数据库对象是否符合策略。

    这里只是一个简单的示例而已,策略管理的功能远不止命名规范的检查这么简单,通过策略管理还可以检查数据库是否自动收缩、SQL Server的密码策略、网络数据表大小、最大并行度……

    微软为我们提供了一个安装包,其中包含了大量的策略示例,帮助大家学习和使用基于策略的管理,下载地址:

    http://go.microsoft.com/fwlink/?LinkId=123720&clcid=0x804

    分享到:
    评论

    相关推荐

      sqlserver2008

      SQL Server 2008 包含了一系列的新特性,比如改进的安全性、增强的数据类型支持以及对XML数据的支持等。 #### 二、SQL Server 2008 的安装步骤 1. **下载安装包**:首先需要从微软官方网站或其他可靠来源下载SQL ...

      sqlserver————oracle工具

      在"sqlserver——oracle工具"的标题中,我们关注的是在SQL Server和Oracle之间进行数据迁移的工具。常见的数据迁移工具有: 1. Oracle SQL Developer Data Pump:Oracle官方提供的免费工具,可以方便地导入导出数据...

      sql server 数据库文件——图书订购

      探索SQL Server的安全特性,如登录、用户、角色和权限,理解如何为不同的用户分配访问和操作数据库的权限,是保护数据安全的重要步骤。 8. **性能优化**: 最后,你可以通过监控和调整索引、统计信息和查询计划,...

      SQL SERVER2008 PPT

      这一章主要介绍了SQL Server 2008的基本概念、版本信息以及新特性。包括Express、Standard、Enterprise等不同版本的区别,以及增强的数据加密、备份恢复、性能优化等方面的改进。 第二章:安装与配置SQL Server ...

      事务管理(二)——SQL SERVER的事务管理

      这篇博客“事务管理(二)——SQL SERVER的事务管理”可能详细介绍了SQL Server如何处理事务,包括事务的特性、隔离级别以及如何处理事务中的并发问题,如死锁。 首先,事务有四个基本特性,即原子性(Atomicity)...

      sql server2008技术内幕书中代码下载

      学习并实践这些代码示例,读者将能够更好地理解和运用SQL Server 2008的T-SQL特性,从而提升数据库管理和开发的技能。这不仅有助于日常的数据库管理任务,也对解决性能瓶颈和设计高效的数据解决方案大有裨益。同时,...

      基于SQL Server 2008的图书管理系统

      SQL Server 2008是Microsoft公司推出的一款强大的关系型数据库管理系统,广泛应用于各种行业的数据存储和管理,包括我们的主题——图书管理系统。在这个系统中,SQL Server 2008扮演着核心角色,负责存储、管理和...

      sqlserver2008教案

      综上所述,这份"sqlserver2008教案"不仅覆盖了T-SQL的基本语法和高级特性,还通过实例和案例教学,使你能够掌握SQL Server 2008的实战应用。无论你是初学者还是有一定基础的数据库管理员,都能从中受益匪浅,提升你...

      大型数据库系统管理、设计与实例分析——基于SQL Server程序原代码

      总结来说,"大型数据库系统管理、设计与实例分析——基于SQL Server程序原代码"这个主题涵盖了数据库设计理论、SQL Server的使用、数据库管理系统的核心功能,以及实际案例的操作。深入学习这个主题,不仅可以提升...

      在SQL_Server_2008中配置和管理基于策略的管理

      SQL Server 2008引入了一项重要的新特性——**基于策略的管理**(Policy-Based Management),简称PBM。这项功能允许DBA以一种声明性的方式来定义、管理和验证SQL Server环境中的各种策略,极大地简化了大规模数据库...

      SQL Server的升级之路系列课程(12):利用SQL Server 2005新特性升级数据应用(下)

      在本课程的第12部分——“利用SQL Server 2005新特性升级数据应用(下)”中,我们将深入探讨SQL Server 2005引入的一些关键改进,这些改进对于提升数据应用的效率和可靠性至关重要。 1. **Service Broker**: SQL ...

      SQL_Server_2000图解教程——下

      《SQL Server 2000 图解教程——下》是一本专门为初学者设计的数据库管理教程,通过丰富的图像和简洁的文字,深入浅出地讲解了SQL Server 2000的核心概念和技术。在这个部分,我们将重点探讨SQL Server 2000在数据...

      《数据挖掘原理与应用——SQL Server 2005 数据库》算法案例

      随着SQL Server版本的更新,如SQL Server 2012及更高版本,数据挖掘功能也在不断演进,掌握新特性将有助于保持技术的前沿性。 总之,《数据挖掘原理与应用——SQL Server 2005 数据库》是一本实用的指南,通过详细...

      数据库技术与应用(SQL Server 2008版)-电子教案.rar

      最后,课程可能会讨论一些高级主题,如数据库性能优化、数据仓库和商务智能,以及SQL Server 2008的新特性和改进,如数据加密、数据镜像和AlwaysOn可用性组,这些都是数据库管理员和开发人员需要了解的关键技术。...

      数据库应用技术——SQL Server 2000简明教程电子教案

      《数据库应用技术——SQL ...通过《数据库应用技术——SQL Server 2000简明教程》的学习,你将具备使用SQL Server 2000管理数据库、编写T-SQL脚本、优化性能和构建报表的能力,为实际工作或进一步学习打下坚实的基础。

      数据库技术及应用——SQL Server 2005-电子教案

      《数据库技术及应用——SQL Server 2005》是一份深入探讨数据库管理和开发的教程,专注于Microsoft SQL Server 2005这一特定版本。SQL Server 2005是微软公司推出的一款强大的关系型数据库管理系统(RDBMS),在企业...

      SQL Server2000 SP4企业版精简版8M.rar

      这个"SQL Server 2000 SP4企业版精简版8M.rar"是一个压缩包,其中包含了SQL Server 2000的企业版精简版安装程序——"SQL Server 2000 SP4企业版精简版8M.exe"。"SP4"指的是Service Pack 4,这是SQL Server 2000的...

      ms sql server2000导入到ms sql server 2005

      6. **维护和优化**:在SQL Server 2005中,你可以利用新的特性和功能对数据库进行优化,例如使用新的索引策略、调整查询性能等。 在实际操作过程中,可能会遇到各种问题,如兼容性问题、性能瓶颈、数据一致性等。...

      十大特性,让我们爱上SQL Server 2005——现在就开始留意这些新特性吧!.pdf

      SQL Server 2005是微软推出的一款强大的关系型数据库管理系统,它引入了许多创新特性,使得数据库管理和数据处理效率大幅提升。以下是对SQL Server 2005十大特性的一部分详细解析: 1. **非聚簇索引中的包含列**:...

      Microsoft SQL Server7.0:———从移动计算到大型企业应用.pdf

      SQL Server 7.0 通过许多特性,例如多服务器、单控制台管理、基于事件的作业执行和警报,集成化安全性以及管理脚本等,降低了使用的总成本。新的版本还通过常规任务的自动化,将数据库管理员解放出来,以便处理更...

    Global site tag (gtag.js) - Google Analytics