使用基于策略的管理管理服务器

基于策略的管理是用于管理 SQL Server 的一个或多个实例的系统。 当 SQL Server 策略管理员使用基于策略的管理时,他们使用 SQL Server Management Studio 创建策略来管理服务器上的实体,例如 SQL Server、数据库或其他 SQL Server 对象的实例。

基于策略的管理的优点

基于策略的管理有助于解决以下方案中出现的问题:

  • 公司策略禁止启用数据库邮件或 SQL 邮件。 创建策略以检查这两项功能的服务器状态。 管理员将服务器状态与策略进行比较。 如果服务器状态不符合要求,管理员会选择“配置”模式,策略会将服务器状态引入符合性。

  • AdventureWorks2012 数据库具有命名约定,该约定要求所有存储过程以字母AW_开头。 创建策略以强制实施此策略。 管理员测试此策略,并接收不符合要求的存储过程列表。 如果将来的存储过程不符合此命名约定,则存储过程的创建语句将失败。

注释

请注意,策略可能会影响某些 SQL Server 功能的工作原理。 例如,更改数据捕获和事务复制都使用没有索引的 systranschemas 表。 如果启用所有表必须具有索引的策略,强制实施策略符合性将导致这些功能失败。

策略是使用 Management Studio 创建和管理的。 本流程包括以下步骤:

  1. 选择包含要配置的属性的基于策略的管理方面。

  2. 定义指定管理方面状态的条件。

  3. 定义一个策略,其中包含条件、筛选目标集的其他条件和评估模式。

  4. 检查 SQL Server 实例是否符合策略。

对于策略失败,对象资源管理器通过在目标旁边和对象资源管理器树中较高节点处显示红色图标,来指示关键运行状况警告。

注释

当系统计算策略的对象集时,默认情况下会排除系统对象。 例如,如果策略的对象集引用所有表,则策略将不适用于系统表。 如果用户想要针对系统对象评估策略,则可以将系统对象显式添加到对象集。 但是,尽管所有策略都支持 检查计划 评估模式,但出于性能原因,并非所有具有任意对象集的策略都支持 检查更改 评估模式。 有关详细信息,请参阅 https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx

基于策略的管理概念

基于策略的管理有三个组件:

  • 策略管理

    策略管理员创建策略。

  • 显式管理

    管理员选择一个或多个托管目标,并显式检查目标是否符合特定策略,或显式使目标符合策略。

  • 评估模式

    有四种评估模式,其中三种模式可以自动化:

    • 按需。 此模式在用户直接指定时评估策略。

    • 更改时:阻止。 此自动模式使用 DDL 触发器来防止策略冲突。

      重要

      如果已禁用嵌套触发器服务器配置选项,更改时:阻止 将无法正常工作。 基于策略的管理依赖于 DDL 触发器来检测和回滚不符合此评估模式下策略的 DDL 操作。 删除策略管理的 DDL 触发器或者禁用嵌套触发器,将会导致此评估模式失败或出现意外表现。

    • 更改时:仅记录。 此自动模式使用事件通知在做出相关更改时评估策略。

    • 按计划。 此自动模式使用 SQL Server 代理作业定期评估策略。

    如果未启用自动策略,则基于策略的管理不会影响系统性能。

基于策略的管理条款

基于策略的管理的目标对象
由基于策略的管理管理的实体,例如 SQL Server 数据库引擎、数据库、表或索引的实例。 服务器实例中的所有目标都构成目标层次结构。 目标集是将一组目标筛选器应用到目标层次结构(例如,HumanResources 架构拥有的数据库中的所有表)所生成的目标集。

基于策略的管理方面
一组逻辑属性,用于为某些类型的托管目标的行为或特征建模。 属性的数量和特征被内置在 Facet 中,并且只能由 Facet 的创建者进行添加或删除。 目标类型可以实现一个或多个管理方面,管理方面可由一个或多个目标类型实现。 Facet的某些属性只能适用于特定版本。

基于策略的管理条件
指定与管理方面相关的基于策略的管理托管目标的一组允许状态的布尔表达式。 SQL Server 在评估条件时会遵循排序规则。 当 SQL Server 排序规则与 Windows 排序规则不完全匹配时,请测试条件以确定算法如何解决冲突。

基于策略的管理策略
基于策略的管理条件和预期行为,例如评估模式、目标筛选器和计划。 策略只能包含一个条件。 可以启用或禁用策略。 策略存储在 msdb 数据库中。

基于策略的管理策略类别
用于帮助管理策略的用户定义类别。 用户可以将策略分类为不同的策略类别。 策略属于一个策略类别,且仅属于一个策略类别。 策略类别适用于数据库和服务器。 在数据库级别,适用以下条件:

  • 数据库所有者可以将数据库订阅到一组策略类别。

  • 只有所订阅的类别的策略才能管理数据库。

  • 所有数据库都隐式订阅默认策略类别。

在服务器级别,策略类别可以应用于所有数据库。

有效策略
目标的有效策略是治理此目标的策略。 仅当满足以下所有条件时,策略才对目标有效:

  • 已启用此策略。

  • 目标属于策略的目标集。

  • 目标或目标的祖先之一订阅了包含该策略的策略组。

基于策略的管理任务

基于策略的管理是基于策略的系统,用于管理 SQL Server 的一个或多个实例。 使用基于策略的管理创建包含条件表达式的条件。 然后,创建将条件应用于数据库目标对象的策略。

任务说明 主题
描述如何存储基于策略的管理策略。 基于策略的管理存储
介绍如何配置警报以通知策略管理员策略失败。 配置警报以通知策略管理员策略失败
介绍如何创建、查看、修改和删除基于策略的管理条件。 创建新的基于策略的管理条件

删除基于策略的管理条件

查看或修改基于策略的管理条件的属性
介绍如何创建、查看、修改和删除基于策略的管理策略。 创建基于策略的管理策略

删除基于策略的管理策略

查看或修改基于策略的管理策略的属性
介绍如何导出和导入基于策略的管理策略。 导出基于策略的管理策略

导入基于策略的管理策略
介绍如何验证服务器实例、数据库、服务器对象或数据库对象是否符合策略。 从对象评估基于策略的管理策略

从该策略评估基于策略的管理策略

按计划评估基于策略的管理策略
介绍如何查看和复制基于策略的管理方面状态到文件。 使用基于策略的管理特征
提供一组策略文件,可以导入为最佳做法策略,并介绍如何根据包含实例、实例对象、数据库或数据库对象的目标集评估策略。 使用基于策略的管理监视和强制实施最佳做法
为 SQL Server Management Studio 中对象资源管理器的 PolicyManagement 节点提供 F1 帮助主题。 策略管理节点(对象资源管理器)

另请参阅

基于策略的管理视图 (Transact-SQL)