Data Management (DMS) の「テーブル同期」モジュールでは、スキーマ同期、シャドウテーブル同期、空データベース初期化、およびテーブル整合性修復の 4 つのテーブル関連操作を制御するセキュリティルールを定義できます。セキュリティルールは、SQL ステートメントの実行可否、適用される承認プロセス、および分析フェーズスクリプトの有効期間を決定します。
仕組み
ユーザーがテーブル同期操作のチケットを提出すると、DMS は以下の順序でセキュリティルールを評価します。
ユーザーがチケットを送信します — たとえば、[スキーマ同期] チケットです。
DMS は、[基本設定項目] の設定を評価します。実行機能が無効化されている場合、SQL ステートメントは実行されず、テーブル同期モジュール内の他のすべてのルールは無効になります。
DMS は、チケットタイプに一致するチェックポイント、この場合は [スキーマ同期検証] を評価します。
対応するルールに基づき、DMS はチケットをブロック、承認プロセスにルーティング、または自動承認のいずれかを行います。
各チェックポイントは独立しています。特定のチケット種別に対して適用されるのは、該当するチェックポイントで設定されたルールのみです。
| チェックポイント | 対象 |
|---|---|
| スキーマ同期検証 | スキーマ同期チケット |
| シャドウテーブル同期検証 | シャドウテーブル同期チケット |
| 空データベース初期化検証 | 空データベース初期化チケット |
| テーブル整合性修復検証 | テーブル整合性修復チケット |
基本設定項目
「テーブル同期」モジュールでは、4 つの操作タイプ全体にグローバルに適用される基本設定項目が 3 つあります。
| 設定項目 | 説明 |
|---|---|
| 実行機能を有効化 | SQL を使用した同期処理が有効かどうかを制御します。OFF に設定されている場合、DMS はテーブルスキーマの比較は行いますが、SQL ステートメントは実行せず、「テーブル同期」モジュール内の他のすべてのルールは無効になります。 |
| データベーステーブル同期のデフォルト承認テンプレート | テーブル同期チケットのデフォルト承認テンプレートです。必要に応じて別のテンプレートに切り替えてください。 |
| 分析フェーズスクリプトの有効期間 | 分析フェーズスクリプトの有効期間です。この期間中にターゲットデータベースのスキーマが変更された場合、実行前に同期をキャンセルできます。 |
要因と操作
各チェックポイント内のセキュリティルールでは、条件変数(ファクター)と条件成立時の DMS の操作(アクション)を、ドメイン特化言語(DSL)構文で記述します。
ファクター
ファクターは、環境タイプやスキーマ名など、ルール評価のためのコンテキスト情報を提供する事前定義変数です。ルールの IF 条件内で使用します。
| ファクター | 説明 |
|---|---|
@fac.env_type | インスタンスの環境タイプ。値は、環境タイプの表示名です(例:DEV または PRODUCT)。詳細については、「インスタンスの環境タイプを変更する」をご参照ください。 |
@fac.schema_name | スキーマの名称です。 |
ファクター名の形式は @fac.<表示名> です。
アクション
アクションは、ルールの IF 条件が成立した際に DMS が実行する操作を定義します。
| アクション | 説明 |
|---|---|
@act.forbid_submit_order | チケットの提出をブロックします。書式:@act.forbid_submit_order 'ブロック理由'。 |
@act.do_not_approve | 使用する承認テンプレートの ID を指定します。詳細については、「承認プロセスの設定」をご参照ください。 |
@act.choose_approve_template | |
@act.choose_approve_template_with_reason |
アクション名の形式は @act.<表示名> です。
DSL 構文の詳細については、「セキュリティルールの DSL 構文」をご参照ください。
セキュリティルールのテンプレート
DMS では、各チェックポイントごとに事前定義されたテンプレートが提供されています。ご利用の環境およびコンプライアンス要件に合致するテンプレートを選択してください。
| チェックポイント | テンプレート |
|---|---|
| スキーマ同期検証 | テスト環境におけるスキーマ同期の承認不要 |
| スキーマ同期における SQL 実行の無効化 | |
| オンライン環境におけるスキーマ同期の SQL 実行無効化 | |
| オンライン環境におけるスキーマ同期の承認プロセス | |
| シャドウテーブル同期検証 | テスト環境におけるシャドウテーブル同期の承認不要 |
| シャドウテーブル同期における SQL 実行の無効化 | |
| オンライン環境におけるシャドウテーブル同期の SQL 実行無効化 | |
| オンライン環境におけるシャドウテーブル同期の承認プロセス | |
| 空データベース初期化検証 | テスト環境における空データベース初期化の承認不要 |
| 空データベース初期化における SQL 実行の無効化 | |
| オンライン環境における空データベース初期化の SQL 実行無効化 | |
| オンライン環境における空データベース初期化の承認プロセス | |
| テーブル整合性修復検証 | テスト環境におけるテーブル整合性修復の承認不要 |
| テーブル整合性修復における SQL 実行の無効化 | |
| オンライン環境におけるテーブル整合性修復の SQL 実行無効化 | |
| オンライン環境におけるテーブル整合性修復の承認プロセス |
実行機能の有効化
SQL ベースの同期を有効にするには、[実行機能を有効化(無効にすると、他のルールは無効になります)] 設定項目を ON に設定します。
DMS コンソール V5.0 にログインします。
ポインターを左上隅の
アイコンに合わせ、[すべての機能] > [セキュリティと仕様] > [セキュリティルール] を選択します。通常モードでは、上部ナビゲーションバーで [セキュリティと仕様] > [セキュリティルール] を選択します。
「[セキュリティルール]」タブで、変更するセキュリティルールセットを見つけ、「[編集]」を「[操作]」列でクリックします。
[詳細] ページで、左側のナビゲーションウィンドウで [データベース開発] > [テーブル同期] を選択します。
[Table Sync] タブで、[Basic Configuration Item] をクリックします。
「実行機能を有効化(無効にすると、他のルールは無効になります)」を見つけ、[編集] を [操作] 列でクリックします。
「[設定項目の変更]」ダイアログボックスで、[設定値]をオンにします。
[送信]をクリックします。
デフォルト承認テンプレートの変更
DMS コンソール V5.0 にログインします。
左上隅にある
アイコンにポインターを移動し、[すべての機能] > [セキュリティと仕様] > [セキュリティルール] を選択します。通常モードでは、上部ナビゲーションバーで [セキュリティと仕様] > [セキュリティルール] を選択します。
[セキュリティルール] タブで、変更するセキュリティルールセットを見つけ、[編集] 列の [操作] をクリックします。
「[詳細]」ページで、左側のナビゲーションウィンドウから「[データベース開発]」>「[テーブル同期]」を選択します。
[Table Sync] タブで、[Basic Configuration Item] をクリックします。
[データベーステーブル同期のデフォルト承認テンプレート] を見つけ、[操作] 列の [編集] をクリックします。

[設定項目の変更]ダイアログボックスで、[承認テンプレートの切り替え]をクリックします。
適用するテンプレートを見つけ、[選択] を [操作] 列でクリックします。
承認プロセスを完全にスキップするには、[承認不要にリセット] をクリックしてください。
[送信] をクリックします。
ルールの作成
DMS コンソール V5.0 にログインします。
左上隅の
アイコンにポインターを移動させ、次に[すべての機能] > [セキュリティと仕様] > [セキュリティルール]を選択します。通常モードでは、上部のナビゲーションバーで[セキュリティと仕様] > [セキュリティルール]を選択します。
[セキュリティルール] タブで、変更するセキュリティルールセットを見つけ、[編集] 列の [操作] をクリックします。
「[詳細]」ページで、左側のナビゲーションウィンドウから「[データベース開発]」>「[テーブル同期]」を選択します。
[テーブル同期] タブで、[アクション] の横にある [ルールの作成] をクリックします。

[ルールの作成 - テーブル同期] ダイアログボックスで、以下のパラメーターを設定します。
パラメーター 説明 チェックポイント 必須です。このルール用のチェックポイントは、スキーマ同期検証、シャドウテーブル同期検証、空のデータベース初期化検証、またはテーブル整合性修復検証です。 テンプレートデータベース オプションです。開始点として使用する事前定義されたテンプレートです。チェックポイントを選択した後、[テンプレートデータベースからロード] をクリックして利用可能なテンプレートを参照します。詳細については、「セキュリティルールテンプレート」をご参照ください。 ルール名 必須です。ルールの名前です。テンプレートからロードする際に自動入力されます。 ルール DSL 必須です。ルールの条件とアクションを定義する DSL ステートメントです。テンプレートからロードする際に自動入力されます。詳細については、「セキュリティルール用 DSL 構文」をご参照ください。 [送信] をクリックします。
新しいルールは、デフォルトで[無効]状態です。[操作]列の[有効化]をクリックします。
[OK] をクリックして確認します。