ポリシー ベースの管理を使用したサーバーの管理Administer Servers by Using Policy-Based Management

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

ポリシー ベースの管理とは、1 つ以上の SQL ServerSQL Serverインスタンスを管理するためのポリシー ベースのシステムのことです。Policy-Based Management is a policy based system for managing one or more instances of SQL ServerSQL Server. 条件式を含む条件を作成します。Use is to create conditions that contain condition expressions. 次に、作成した条件を対象のデータベース オブジェクトに適用するポリシーを作成します。Then, create policies that apply the conditions to database target objects.

たとえば、データベース管理者として、特定のサーバーでデータベース メールが有効になっていないことを確認することが必要があるとします。その場合は、そのサーバー オプションを設定した条件とポリシーを作成します。For example, as the database administrator, you may want to ensure that certain servers do not have Database Mail enabled, so you create a condition and a policy that sets that server option.

重要!!IMPORTANT!! ポリシーは、一部の機能の動作に影響を及ぼすことがあります。Policies can affect how some features work. たとえば、変更データ キャプチャとトランザクション レプリケーションでは、インデックスがない systranschemas テーブルが使用されます。For example, change data capture and transactional replication both use the systranschemas table, which does not have an index. すべてのテーブルにインデックスが必要であるというポリシーを有効にして、このポリシーへの準拠を適用した場合、これらの機能が失敗します。If you enable a policy that all tables must have an index, enforcing compliance of the policy will cause these features to fail.

SQL Server Management Studio を使用してポリシーを作成し管理するにはUse SQL Server management Studio to create and manage policies, to:

  1. 構成するプロパティを含むポリシー ベースの管理ファセットを選択します。Select a Policy-Based Management facet that contains the properties to be configured.

  2. 管理ファセットの状態を指定する条件を定義します。Define a condition that specifies the state of a management facet.

  3. 条件、対象セットをフィルター処理する追加条件、および評価モードを示すポリシーを定義します。Define a policy that contains the condition, additional conditions that filter the target sets, and the evaluation mode.

  4. SQL ServerSQL Server インスタンスがポリシーに準拠しているかどうかを確認します。Check whether an instance of SQL ServerSQL Server is in compliance with the policy.

ポリシーに違反する場合は、オブジェクト エクスプローラーで、対象およびオブジェクト エクスプローラー ツリーの上位にあるノードの横に、重大な状態の警告が赤いアイコンとして示されます。For failed policies, Object Explorer indicates a critical health warning as a red icon next to the target and the nodes that are higher in the Object Explorer tree.

注: ポリシーのオブジェクト セットをシステムが計算する際、既定ではシステム オブジェクトが除外されます。NOTE: When the system computes the object set for a policy, by default the system objects are excluded. たとえば、ポリシーのオブジェクト セットがすべてのテーブルを参照する場合、システム テーブルにはそのポリシーが適用されません。For example, if the object set of the policy refers to all tables, the policy will not apply to system tables. システム オブジェクトに対してポリシーを評価する必要がある場合は、ユーザーが、それらのオブジェクト セットに対し、システム オブジェクトを明示的に追加できます。If users want to evaluate a policy against system objects, they can explicitly add system objects to the object set. "スケジュールに基づいて確認" の評価モードではすべてのポリシーがサポートされますが、パフォーマンス上の理由により、 "変更時に確認" の評価モードでは、任意のオブジェクト セットを含んだポリシーは、必ずしもすべてサポートされるとは限りません。However, though all policies are supported for check on schedule evaluation mode, for performance reason, not all policies with arbitrary object sets are supported for check on change evaluation mode. 詳細については、https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx を参照してください。For more information, see https://blogs.msdn.com/b/sqlpbm/archive/2009/04/13/policy-evaluation-modes.aspx

ポリシー ベースの管理は 3 つの要素で構成されます。Three Policy-Based Management components

ポリシー ベースの管理は 3 つの要素で構成されます。Policy-Based Management has three components:

  • ポリシー管理。Policy management. ポリシー管理者がポリシーを作成します。Policy administrators create policies.

  • 明示的な管理。Explicit administration. 管理者が 1 つ以上の管理対象を選択し、対象が特定のポリシーに準拠しているかどうかを明示的に確認するか、対象をポリシーに明示的に準拠させます。Administrators select one or more managed targets and explicitly check that the targets comply with a specific policy, or explicitly make the targets comply with a policy.

  • 評価モード。Evaluation modes. 実行モードには次の 4 種類があり、そのうち 3 つは自動化できます。There are four evaluation modes; three can be automated:

    • [要求時] :On demand. このモードでは、ユーザーが直接指定した場合にポリシーが評価されます。This mode evaluates the policy when directly specified by the user.

    • [変更時: 回避] :On change: prevent. この自動モードでは、DDL トリガーを使用してポリシー違反が防止されます。This automated mode uses DDL triggers to prevent policy violations.

      重要:IMPORTANT! nested triggers サーバー構成オプションが無効になっている場合、 [変更時: 回避] は正しく動作しません。If the nested triggers server configuration option is disabled, On change: prevent will not work correctly. ポリシー ベースの管理では、この評価モードを使用するポリシーに準拠しない DDL 操作の検出およびロールバックに DDL トリガーが使用されます。Policy-Based Management relies on DDL triggers to detect and roll back DDL operations that do not comply with policies that use this evaluation mode. ポリシー ベースの管理の DDL トリガーを削除するか、nested triggers を無効にすると、この評価モードが失敗したり、予期しない動作をすることがあります。Removing the Policy-Based Management DDL triggers or disabling nest triggers, will cause this evaluation mode to fail or perform unexpectedly.

    • [変更時: ログのみ] :On change: log only. この自動モードでは、関連する変更が行われたときにイベント通知を使用してポリシーが評価されます。This automated mode uses event notification to evaluate a policy when a relevant change is made.

    • [スケジュールで実行] :On schedule. この自動モードでは、 SQL ServerSQL Server エージェント ジョブを使用してポリシーが定期的に評価されます。This automated mode uses a SQL ServerSQL Server Agent job to periodically evaluate a policy.

    自動ポリシーが有効になっていない場合、ポリシー ベースの管理はシステム パフォーマンスに影響しません。When automated policies are not enabled, Policy-Based Management will not affect system performance.

用語Terms

ポリシー ベースの管理の管理対象 ポリシー ベースの管理で管理するエンティティ (SQL Server データベース エンジンSQL Server Database Engine のインスタンス、データベース、テーブル、インデックスなど)。Policy-Based Management managed target Entities that are managed by Policy-Based Management, such as an instance of the SQL Server データベース エンジンSQL Server Database Engine, a database, a table, or an index. サーバー インスタンス内のすべての対象で、対象となる階層が構成されます。All targets in a server instance form a target hierarchy. 対象セットは、対象となる階層に一連の対象フィルターを適用した結果得られる一連の対象です (HumanResources スキーマが所有するデータベース内のすべてのテーブルなど)。A target set is the set of targets that results from applying a set of target filters to the target hierarchy, for example, all the tables in the database owned by the HumanResources schema.

ポリシー ベースの管理ファセット 特定の種類の管理対象の動作または特性をモデル化した一連の論理プロパティ。Policy-Based Management facet A set of logical properties that model the behavior or characteristics for certain types of managed targets. プロパティの数と特性がファセットに組み込まれ、その追加や削除はファセットの作成者のみが実行できます。The number and characteristics of the properties are built into the facet and can be added or removed by only the maker of the facet. 1 種類の対象で 1 つ以上の管理ファセットを実装したり、1 種類以上の対象で 1 つの管理ファセットを実装したりすることができます。A target type can implement one or more management facets, and a management facet can be implemented by one or more target types. ファセットのプロパティの中には、特定のバージョンにしか適用できないものもあります。Some properties of a facet can only apply to a specific version..

ポリシー ベースの管理条件Policy-Based Management condition
管理ファセットについて、ポリシー ベースの管理の管理対象の一連の許可状態を指定するブール式。A Boolean expression that specifies a set of allowed states of a Policy-Based Management managed target with regard to a management facet. SQL ServerSQL Server は、条件の評価時に照合順序に従おうとします。tries to observe collations when evaluating a condition. SQL ServerSQL Server の照合順序が Windows の照合順序と一致しないときは、条件をテストして、アルゴリズムによる競合の解決方法を調べてください。When SQL ServerSQL Server collations do not exactly match Windows collations, test your condition to determine how the algorithm resolves conflicts.

ポリシー ベースの管理ポリシーPolicy-Based Management policy
ポリシー ベースの管理条件と、評価モード、対象フィルター、スケジュールなどの想定される動作。A Policy-Based Management condition and the expected behavior, for example, evaluation mode, target filters, and schedule. 1 つのポリシーには 1 つの条件しか含めることができません。A policy can contain only one condition. ポリシーは有効または無効にできます。Policies can be enabled or disabled. ポリシーは msdb データベースに格納されます。Policies are stored in the msdb database.

ポリシー ベースの管理のポリシー カテゴリPolicy-Based Management policy category
ポリシーの管理に役立つユーザー定義のカテゴリ。A user-defined category to help manage policies. ユーザーは、ポリシーをさまざまなポリシー カテゴリに分類できます。Users can classify policies into different policy categories. ポリシーは 1 つのポリシー カテゴリだけに属します。A policy belongs to one and only one policy category. ポリシー カテゴリはデータベースとサーバーに適用されます。Policy categories apply to databases and servers. データベース レベルでは、次の条件が適用されます。At the database level, the following conditions apply:

  • データベース所有者は、データベースを一連のポリシー カテゴリにサブスクライブできます。Database owners can subscribe a database to a set of policy categories.

  • そのサブスクライブ先のカテゴリのポリシーのみがデータベースを制御できます。Only policies from its subscribed categories can govern a database.

  • データベースはすべて、既定のポリシー カテゴリに暗黙的にサブスクライブしています。All databases implicitly subscribe to the default policy category.

サーバー レベルでは、すべてのデータベースにポリシー カテゴリを適用できます。At the server level, policy categories can be applied to all databases.

有効なポリシーEffective policy
対象の有効なポリシーとは、この対象を制御するポリシーのことです。The effective policies of a target are those policies that govern this target. ポリシーは、次のすべての条件を満たす場合にのみ対象について有効になります。A policy is effective with regard to a target only if all the following conditions are satisfied:

  • ポリシーが有効になっている。The policy is enabled.

  • 対象がポリシーの対象セットに属している。The target belongs to the target set of the policy.

  • 対象または対象のいずれかの先祖がこのポリシーを含んでいるポリシー グループにサブスクライブしている。The target or one of the targets ancestors subscribes to the policy group that contains this policy.

参照See also