このトピックでは、スキーマ設計モジュールの基本的な構成項目、チェックポイント、要因とアクション、およびテンプレートについて説明します。 このトピックでは、デフォルトの承認テンプレートを変更してルールを作成する方法についても説明します。
背景情報
テスト環境でスキーマを設計し、本番環境でスキーマを公開する場合、スキーマ設計チケットに複数のインスタンスが含まれる場合があります。 この場合、Schema designモジュールの基本構成項目、デザインルール、およびリスク識別ルールは、(テスト環境で) ベースデータベースに変更を適用するために使用されるセキュリティルールに設定されます。
スキーマデザインモジュールのデザインルールには、次の図に示すように、変更と検証ヘッダーの保存、変更と検証フィールドの保存、変更と検証インデックスの保存があります。
スキーマ設計モジュールのリスク識別ルールには、次の図に示すように、テーブル作成リスク制御、フィールド変更リスク制御、インデックス変更リスク制御、SQL実行リスク制御があります。
ただし、承認プロセスでは、運用環境のデータベースに設定されているセキュリティルールが使用されます。 たとえば、データベースBのスキーマを設計するためのチケットを起票すると、インスタンスBに設定されたセキュリティルールが使用されます。
基本設定アイテム
データ管理 (DMS) では、スキーマ設計モジュールで次の基本的な構成項目を提供します。
非ピア公開の有効化: 既定では、テーブルへのデータ変更は、別のデータベース内の同じ名前のテーブルにのみ公開できます。 非ピア公開を有効にすると、任意のテーブルでデータ変更を実行できます。
警告この機能は高いリスクをもたらす可能性があります。 この機能は、特別な要件に対してのみ有効にすることを推奨します。
R&Dプロセス: スキーマ設計チケットのプロセス全体。 これは、Schema Designモジュールで最も重要な構成項目です。 下表に、各パラメーターを説明します。
パラメーター
説明
ステップ
ノードの種類。 有効な値: DesignおよびPublish。
デザイン: R&Dプロセスのデザインノードはデフォルトで生成され、削除できません。 スキーマ変更が設計される環境を決定します。
公開: R&Dプロセスの公開ノードは、変更の設計後にスキーマ変更を公開するために使用されます。 複数の発行ノードを設定できます。
ノード名
ノードの名前。最大10文字を使用できます。
データベース環境
ノードが実行される環境。
実行ストラテジー
ノードが実行される方法。 有効な値: すぐに: ノードは承認された直後に実行されます。
Periodically: ノードは指定した時点で実行されます。 指定された時点より前にノードが承認された場合は、スケジュールどおりに実行されます。 それ以外の場合、ノードは中断され、実行されません。
戻ることができます
発行ノードをデザインノードにロールバックできるかどうかを指定します。
スキップできます
現在のノードをスキップできるかどうかを指定します。
アンカー
スキーマ変更プロセスを停止するために使用されるポイント。 ノードをアンカーとして設定した場合、ノードがパブリッシュされた後、アンカーに続くノードは実行できず、スキーマは変更できません。 この時点で、チケットは発行済みの状態になります。
アクション
[発行] ノードで実行できる操作。 発行ノードを削除できます。
フィールドタイプの設定: サポートされている追加フィールドのデータ型。
インデックスタイプの設定: サポートされている追加インデックスのデータ型。
テーブル作成テンプレート: テーブルの作成に使用されるテンプレート。 設定されたフィールドとインデックスは、テーブルの作成時にデフォルトで読み込まれます。 テンプレートは必要ありません。 ビジネス要件に基づいて、テンプレートを使用してテーブルを作成するかどうかを決定できます。
元のフィールドのデータ型の変更を禁止する: 元のテーブルが変更されたときに、元のフィールドのデータ型を変更できるかどうかを指定できます。
元のフィールドの削除を禁止する: 元のテーブルが変更されたときに既存のフィールドを削除できるかどうかを指定できます。 既存のフィールドを削除すると、高いリスクが発生する可能性があります。 この機能を有効にすることを推奨します。
元のフィールドの名前変更を禁止する: 元のテーブルが変更されたときに既存のフィールドの名前を変更できるかどうかを指定できます。 既存のフィールドの名前を変更すると、高いリスクが発生する可能性があります。 この機能を有効にすることを推奨します。
テーブル文字セット: テーブルを作成するときに使用できる文字セット。 たとえば、utf8とutf8mb4を指定できます。
スキーマデザインの既定の承認テンプレート: 承認ルール検証チェックポイントを設定しない場合にスキーマデザインチケットに使用される既定の承認テンプレート。 [設定項目の変更] ダイアログボックスで、[承認テンプレートの切り替え] をクリックして、既定の承認テンプレートの承認プロセスを変更できます。 詳細については、「既定の承認テンプレートを変更する手順」をご参照ください。
公開時にチケットを終了状態に進める: この機能を有効にすると、R&Dプロセスでアンカーとして設定されているノードが実行された後、チケットは終了状態に進みます。 この機能を使用するには、R&Dプロセスの最後のノードをアンカーとして設定する必要があります。
Checkpoints
Schema Designモジュールには、次の2つのプロセスが含まれます。
変更を保存するプロセス: DMSは、このプロセスに対して次の3つのチェックポイントを提供し、テーブルの見出し、フィールド、およびインデックスを検証します。
変更の保存とヘッダーの検証
変更の保存とフィールドの検証
変更の保存とインデックスの検証
変更を適用するプロセス: DMSは、このプロセスに次の5つのチェックポイントを提供します。 最初の4つのチェックポイントは、データ定義言語 (DDL) ステートメントを使用して実行されるスキーマ変更のリスクを識別し、最後のチェックポイントは、各タイプのリスクに承認プロセスを割り当てます。
テーブル作成リスク管理
フィールド変更リスク管理
インデックス変更リスク管理
SQL実行リスク制御
承認ルールの検証
DMSは、これら2つのプロセスを検証するためのセキュリティルールのさまざまな組み込みテンプレートを提供します。 テンプレートを使用するか、必要に応じてテンプレートを変更できます。 詳細については、「セキュリティルールの作成手順」をご参照ください。
要因とアクション
ファクター: ファクターは、SQL文のカテゴリやデータが影響を受ける行数など、セキュリティルールによって検証されるコンテキストを取得するために使用される組み込み変数です。 因子名は、プレフィックス
@ facで構成されます。
と要素の表示名を指定します。 [セキュリティルール] ページの各モジュールでは、チェックポイントごとに異なる要素が表示されます。 次の表に、[スキーマの変更] モジュールのチェックポイントに提供される要素を示します。要素
説明
@ fac.table_kind
スキーマを変更するテーブルの型。 有効な値:
new: 新しく作成されたテーブル
old: 既存のテーブル
@ fac.column_kind
変更するフィールドのタイプ。 有効な値:
new: 新しく作成されたフィールド
old: 既存のフィールド
@ fac.xxxx_old
比較に使用される既存のフィールドまたはインデックスの値。
@ fac.column_is_primary
フィールドが主キー列として機能するかどうかを示します。 有効な値:
true: このフィールドは主キー列として機能します。
false: このフィールドは主キー列として機能しません。
@ fac.column_type_support_default
データ型のフィールドにデフォルト値を設定できるかどうかを示します。 有効な値:
true: デフォルト値を設定できます。
false: デフォルト値は設定できません。
たとえば、デフォルト値は
CHAR
型のフィールドに設定できますが、TEXT
型のフィールドには設定できません。@ fac.index_kind
変更するインデックスのタイプ。 有効な値:
new: 新しく作成されたインデックス
old: 既存のインデックス
@ fac.index_column_count
インデックス内のフィールドの数。
@ fac.change_type
DDLステートメントを使用して実行されるスキーマ変更の型。 有効な値:
new: 1つ以上のフィールドまたはインデックスを追加します。
modify: 1つ以上のフィールドまたはインデックスを変更します。
delete: 1つ以上のフィールドまたはインデックスを削除します。
@ fac.altered_table_size
スキーマを変更するテーブルのサイズ。 単位:MB
@ fac.online_execute
オンライン環境でスキーマ変更を実行できるかどうかを示します。 有効な値:
true: スキーマの変更はオンライン環境で実行できます。
false: オンライン環境ではスキーマの変更を実行できません。
@ fac.change_risk_level
スキーマのリスクレベルが変更されます。 有効な値:
high
真ん中
low
@ fac.env_type
環境のタイプ。 値は、
DEV
やPRODUCT
などの環境タイプの表示名です。 詳細については、「インスタンスの環境タイプの変更」をご参照ください。アクション: アクションは、
if
ステートメントで指定された条件が満たされた後にDMSが実行する操作です。 例えば、DMSは、チケットの提出を禁止し、承認プロセスを選択し、チケットを承認し、またはチケットを拒否するアクションを実行することができる。 アクションはセキュリティルールの目的を示します。 アクション名は、プレフィックス@ actで構成されます。
とアクションの表示名を指定します。 [セキュリティルール] ページの各モジュールは、チェックポイントごとに異なるアクションを提供します。 次の表に、[スキーマ設計] モジュールのチェックポイントに提供されるアクションを示します。Action
説明
@ act.block_submit
スキーマ変更の送信をブロックし、エラーメッセージを表示します。 このアクションは、変更を保存するプロセスで使用できます。 ステートメントの形式:
@ act.block_submit 'Reason for block'
@ act.show_warning
スキーマ変更の送信をブロックせずにエラーメッセージを表示します。 このアクションは、変更を保存するプロセスで使用できます。 ステートメントの形式:
@ act.show_warning 'Error message'
@ act.mark_middle_risk
スキーマ変更のリスクが中程度であることを指定します。 このアクションは、リスクレベルを特定するプロセスで使用できます。 ステートメントの形式:
@ act.mark_middle_risk 'Reason for The identification '
@ act.mark_high_risk
スキーマ変更のリスクが高いことを指定します。 このアクションは、リスクレベルを特定するプロセスで使用できます。 ステートメントの形式:
@ act.mark_high_risk 'Reason for The identification '
@ act.forbid_submit_publish
チケットを拒否します。 このアクションは、承認プロセスを設定するプロセスで使用できます。 ステートメントの形式:
@ act.forbid_submit_publish 'Reason for The reject'
@ act.do_not_approve
承認テンプレートのIDを指定します。 詳細については、「承認プロセスの設定」をご参照ください。
@ act.choose_approve_template
@ act.choose_approve_template_with_reason
セキュリティルールのテンプレート
DMSは、定義済みの多数のセキュリティルールテンプレートを提供します。 テンプレートを有効にするか、ビジネス要件に基づいてテンプレートを変更および有効にすることができます。 次の表に、[スキーマ変更] モジュールでサポートされるルールテンプレートを示します。
チェックポイント | テンプレート機能 |
変更の保存とヘッダーの検証 | 新しく作成されたテーブルの名前に指定されたキーワードを含めることができないことを指定します。 |
新しく作成されたテーブルの名前の長さを制限します。 | |
新しく作成したテーブルの説明が必要です。 | |
新しく作成されたテーブルの名前に小文字が必要です。 | |
新しく作成されたテーブルの主キーが必要です。 | |
新しく作成されたテーブルには一意のキーが必要です。 | |
インデックスの数を制限し、インデックスの数が指定されたしきい値に達するとユーザーにアラート通知を送信します。 | |
新しく作成されたテーブルに指定されたフィールドが必要です。 | |
変更の保存とフィールドの検証 | 新しく作成されたフィールドの名前に指定されたキーワードを含めることができないことを指定します。 |
新しく作成されたフィールドの説明が必要です。 | |
新しく作成されたフィールドの名前に大文字または小文字が必要です。 | |
既存のテーブルに新しく作成されたnull以外のフィールドの既定値が必要です。 | |
ステータスがnullableからnull以外に変更された既存のフィールドの既定値が必要です。 | |
新しく作成された主キーフィールドがINTEGER型であることを指定します。 | |
新しく作成されたテーブルのすべてのフィールドに値を割り当てる必要があることを指定します。 | |
CHAR型の新しく作成されたフィールドの長さを制限します。 | |
新しく作成されたVARCHAR型のフィールドの長さを制限します。 | |
変更の保存とインデックスの検証 | 新しく作成したインデックスの名前に、指定したキーワードを含めることができないことを指定します。 |
新しく作成されたインデックスの名前に大文字または小文字が必要です。 | |
新しく作成したインデックスが一意のインデックスであることを指定します。 | |
新しく作成したインデックスが通常のインデックスであることを指定します。 | |
新しく作成されたインデックスがFULLTEXT型であることを指定します。 | |
新しく作成されたインデックスがSPATIAL型であることを指定します。 | |
プライマリキーとして機能する新しく作成されたフィールドの数を制限します。 | |
新しく作成されるインデックスフィールドの数を制限します。 | |
テーブル作成リスク管理 | 論理テーブル内のテーブルシャードの数を制限します。 |
テーブルの主キーの数を制限します。 | |
テーブル内のインデックスの数を制限します。 | |
フィールド変更リスク管理 | 指定されたフィールドを削除できないことを指定します。 |
新しく作成されたフィールドのデータ型を制限します。 | |
フィールドの名前を指定した名前に変更できないことを指定します。 | |
フィールドを指定したデータ型に変更できないことを指定します。 | |
インデックス変更リスク管理 | テーブルの主キーを削除できないことを指定します。 |
テーブルのインデックスを削除できないことを指定します。 | |
テーブルの主キーをインデックスに変更できないことを指定します。 | |
主キー列に指定されたフィールドを含めることができないことを指定します。 | |
通常のインデックスを変更できないことを指定します。 | |
新しく作成されたインデックスの型を制限します。 | |
SQL実行リスク制御 | インスタンスをコアインスタンスにできないことを指定します。 |
テーブルが指定されたストレージエンジンを使用できないことを指定します。 | |
サイズが指定された制限を超えたときにテーブルがロックされることを指定します。 | |
承認ルールの検証 | DDLステートメントを使用してデータベースのスキーマを変更することを禁止します。 |
運用環境でデータベースのスキーマを変更するためにDDLステートメントを使用することを禁止します。 | |
DDLステートメントを承認なしに実行して、テスト環境でデータベースのスキーマを変更できるようにします。 | |
運用環境のさまざまなリスクレベルの承認プロセスを設定します。 |
デフォルトの承認テンプレートを変更する手順
DMSコンソールV5.0 にログインします。
左上隅のアイコンの上にポインタを移動し、
を選択します。説明DMSコンソールを通常モードで使用する場合は、上部のナビゲーションバーで
を選択します。表示される [セキュリティルール] ページで、変更するセキュリティルールセットを見つけ、[操作] 列の [編集] をクリックします。
[詳細] ページの左側のナビゲーションウィンドウで、[スキーマデザイン] タブをクリックします。
[スキーマデザイン] タブで、[基本設定項目] をクリックします。
[スキーマ設計の既定の承認テンプレート] 設定項目を見つけ、[操作] 列の [編集] をクリックします。
表示される [設定項目の変更] ダイアログボックスで、[承認テンプレートの切り替え] をクリックします。
適用するテンプレートを見つけて、[操作] 列の [選択] をクリックします。
説明[承認なしにリセット] をクリックして、チケットの承認をスキップすることもできます。
[送信] をクリックします。
セキュリティルールの作成手順
DMSコンソールV5.0 にログインします。
左上隅のアイコンの上にポインタを移動し、
を選択します。説明DMSコンソールを通常モードで使用する場合は、上部のナビゲーションバーで
を選択します。表示される [セキュリティルール] ページで、変更するセキュリティルールセットを見つけ、[操作] 列の [編集] をクリックします。
[詳細] ページの左側のナビゲーションウィンドウで、[スキーマデザイン] タブをクリックします。
[スキーマデザイン] タブで、[操作] の横にある [ルールの作成] をクリックします。
表示される [ルールの作成-スキーマデザイン] ダイアログボックスで、必要に応じてパラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
チェックポイント (必須)
セキュリティルールを作成するチェックポイント。 DMSは、スキーマ設計モジュールでさまざまなチェックポイントを提供します。 詳細については、「チェックポイント」をご参照ください。
テンプレートデータベース (オプション)
セキュリティルールを作成するテンプレートです。 DMSは、セキュリティルールのさまざまな組み込みテンプレートを提供します。 [チェックポイント] ドロップダウンリストからチェックポイントを選択した後、[テンプレートデータベースからロード] をクリックしてテンプレートを選択できます。 使用可能なテンプレートの詳細については、「セキュリティルールのテンプレート」をご参照ください。
ルール名 (必須)
セキュリティルールのカスタム名。 テンプレートデータベースのテンプレートからセキュリティルールを読み込むと、ルール名が自動的に入力されます。
ルールDSL (必須)
セキュリティルールの設定に使用されるドメイン固有言語 (DSL) ステートメント。 詳細については、「」をご参照ください。 テンプレートデータベースのテンプレートからセキュリティルールを読み込むと、ステートメントは自動的に入力されます。
[送信] をクリックします。
デフォルトでは、作成するセキュリティルールは [無効] 状態です。 作成したセキュリティルールを見つけ、[操作] 列の [有効化] をクリックします。
表示されるメッセージで、[OK] をクリックします。