SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

SQL Server 2008のポリシー管理

ポリシーの定義方法、ポリシーを用いたSQL Serverインスタンスの管理方法

  • X ポスト
  • このエントリーをはてなブックマークに追加

 Microsoft SQL Server 2008の発表に伴い、SQL Serverインスタンスをコントロールするための新機能として、ポリシー管理が追加されました。この記事では、ポリシーを定義する方法、そして定義したポリシーを用いてSQL Server 2008インスタンスをより適切に管理する方法について説明します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 Microsoft SQL Server 2008の発表に伴い、SQL Serverインスタンスをコントロールするための新機能が多数追加されました。この新しいコントロール機能の1つがポリシー管理です。ポリシー管理を利用すると、インスタンスをどのようにセットアップして使用するかを報告したり強制したりするポリシー(ルール)を定義できます。この記事では、ポリシーを定義する方法、そして定義したポリシーを用いてSQL Server 2008インスタンスをより適切に管理する方法について説明します。

ポリシー管理とは何か

 ポリシー管理は、DBAのための新しい管理パラダイムであり、DBAがSQL Serverインスタンスをどのようにセットアップして使用するかというルールを定義できます。この定義したルールを「ポリシー」と言います。各ポリシーでは、そのポリシーによって報告または強制するルールを明確に規定するためのファセットと条件を指定します。DBAは、各ポリシーをどのように適用するかも定義できます(これについては後述します)。

 ファセットとは、ストアドプロシージャやログインやテーブルなど、SQL Server内のコンポーネントです。ポリシーの作成対象にできるファセットは多種多様です。次のスクリーンショットにはたくさんのファセットが表示されていますが、これで全部ではありません。

 条件は、その名が示すとおりのものです。ポリシーに適合しているかどうかを判定するためにファセットをテストする条件を指定します。条件は、1つのファセットに対してのみ定義できます。条件の内部では、ファセットの1つ以上のプロパティに対して式を定義します。それぞれの式をファセットのプロパティに対してテストすると、結果は真または偽になります。式はANDとORを使用して連結できます。式のテスト結果に基づいて、ポリシーチェックの合否が判定されます。

 ポリシーを構成する要素についての基礎知識は以上です。続いて、簡単なポリシーを実際に作成してみます。まずは条件を作成します。

条件を作成する

 新しいポリシーを作成するには、SQL Server 2008の[Management]フォルダを展開します。このフォルダの下に、[Policy Management]フォルダがあります。[Policy Management]フォルダを展開すると、[Policies]、[Conditions]、[Facets]という3つのフォルダが表示されます。

 新しいポリシーを定義する前に、どのようなポリシーを作成するかを決定する必要があります。このデモでは、ストアドプロシージャの名前をコントロールするための非常にシンプルなポリシーを作成します。ポリシーによってプロシージャの名前をチェックし、プロシージャ名が「sp_」で始まらないようにしたいと思います。

 ポリシーを定義する最初のステップは、ストアドプロシージャファセットに対する条件を作成することです。初期状態では、SQL Server 2008に作成済みの条件はありません。さまざまなポリシーすべてに対して、必要な可能性のある条件を全部定義しなければなりません。新しい条件を作成するには、[Conditions]項目を右クリックし、[New Condition...]を選択します。すると、次のダイアログボックスが表示されます。

 このダイアログボックスで、まず名前を定義しなければなりません。分かりやすい条件名を定義してください。今回は、「Verify that user Stored Procedures don't start with sp underscore」という条件名を定義します。

 次に、ポリシーの定義対象とするファセットを決定します。上のスクリーンショットを見ると、[Facet:]項目にドロップダウンメニューがあることが分かります。現在、ファセットは[Application Role]に設定されています。ドロップダウンメニューを使用して、[Stored Procedure]ファセットを選択する必要があります。

 次に、ストアドプロシージャ名をテストして「sp_」で始まっていないことを確認する式を定義します。このプロセスの最初のステップとして、テストするフィールドを選択します。フィールドの選択は、[Create New Condition]ダイアログボックスの[Expression]領域にある[Field]列の横の参照ボタン([...])をクリックして行います。参照ボタンをクリックすると、[Stored Procedure]ファセットに関連付けられたさまざまなプロパティから選択できます。今回の条件では、[@Name]ファセットを選択します。次のステップは、有効な値に対して[@Name]フィールドをテストするための演算子([Operator])のタイプを決定することです。すべてのストアドプロシージャが「sp_」で始まらないようにしたいので、[NOT LIKE]演算子を選択します。最後に、テスト対象とする値([Value])を指定します。今回は、値の基準として「'sp_%'」と入力します。「Verify that user Stored Procedures don't start with sp underscore」条件の最終的な定義は次のようになります。

 ここで注目すべき点は、条件に複数の式を指定できることです。このため、先ほど定義した条件よりもはるかに複雑な条件を作成することが可能です。

 必要に応じて、上のウィンドウの左側のペインにある[Description]項目をクリックし、条件の説明を入力できます。今回の条件は非常に分かりやすいので、説明は入力しません。条件が複雑な場合は、説明を追加して条件の意図を示すことも考慮してください。

 条件の定義を保存するには、ダイアログボックス下部にある[OK]ボタンをクリックするだけです。これで条件を作成し終わったので、次に進んでポリシーを作成できます。

次のページ
ポリシーを作成する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Greg Larsen(Greg Larsen)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4937 2010/03/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング