SQL 修正機能は、SQL 変更を実行するためのエントリーポイントであり、高いレベルのセキュリティが求められます。 承認のためにチケットを送信すると、一連のセキュリティルールによってリクエストが検証されます。 この検証に合格した SQL ステートメントのみが実行できます。
前提条件
ユーザーは [管理者]、[DBA]、または [セキュリティ管理者] である必要があります。
背景情報
Data Management (DMS) のセキュリティルールは、柔軟なドメイン特化言語 (DSL) 機能を提供します。 これにより、必要に応じてリスクレベルをカスタマイズし、リスクの異なる変更に対して異なる承認ワークフローを使用できます。 たとえば、SQL の実行を厳しく制限したり、すべての SQL ステートメントを寛大に許可したりできます。
SQL 修正モジュールのチェックポイント
チェックポイント | 説明 | 例 |
基本設定項目 | このセクションには、5 つのデフォルトルールが含まれています:
| - |
SQL 実行ルール | SQL ウィンドウで実行できる SQL ステートメントを制限します。 許可された SQL ステートメントのみが実行できます。 説明 競合する 2 つのルールが有効になっている場合、より厳しいルールが適用されます。 たとえば、次の 2 つのルールが両方とも有効になっている場合、システムは 2 番目のルールを適用します。
| DML ステートメントのみがオンラインプロダクトデータベースを変更できるようにするには、次の SQL 実行ルールを追加します: 前提条件 意味:データベース環境が本番環境ではなく、SQL ステートメントのタイプが |
リスク識別ルール | 送信されたチケットのリスクレベルを識別します。 データベース環境、影響を受ける行数、SQL タイプなどの条件に基づいてリスクレベルをカスタマイズできます。 説明 セキュリティルールが異なると、変更タスクにマークされるリスクレベルも異なります。 最終的なリスクレベルは、マークされたすべてのレベルの中で最も高いものになります。 たとえば、5 つの低リスク、3 つの中リスク、1 つの高リスクを持つ SQL 変更タスクは、高リスクとして分類されます。 | オフライン環境を低リスクとして定義するには、次のリスク識別ルールを追加します: 意味:データベース環境が本番環境でない場合、リスクレベルは低くなります。 |
リスク承認ルール | さまざまなリスクレベルに対する承認ルールを設定またはカスタマイズします。 データベースの変更が [リスク識別ルール] チェックポイントでいずれのリスクレベルにも該当しない場合、[基本設定項目] セクションの [データ変更のデフォルト承認テンプレート] で指定された承認ワークフローが使用されます。 | デフォルトでは、ステージング環境は低リスクと見なされ、承認は不要です。 |
バッチデータインポートルール | [データインポート] チケットに適用される検証ルールです。 | 挿入ステートメントのバッチインポートを許可します。 |
デフォルトの承認テンプレートの変更
DMS 5.0 にログインします。
-
左上隅の
アイコンにポインターを合わせ、 を選択します。 説明DMS コンソールを通常モードで使用する場合は、上部のナビゲーションバーで を選択します。
[セキュリティルール] タブで、目的のルールセットを見つけ、[操作] 列の [編集] をクリックします。
左側のナビゲーションバーの[詳細] ページで、[SQL Correct] をクリックします。
[チェックポイント] セクションで、[基本設定項目] をクリックします。
[データ変更デフォルト承認テンプレート] 行の [操作] 列で、[編集] をクリックします。
[設定項目変更] ダイアログボックスで、[承認テンプレートの切り替え] をクリックします。
[承認テンプレートの切り替え] ダイアログボックスで、目的のテンプレートを見つけ、[操作] 列にある [選択] をクリックします。
説明チケットに承認が不要な場合、[承認不要にリセット] をクリックして承認ステップをバイパスできます。
[送信] をクリックします。
SQL 修正モジュールのファクターとアクション
ファクター
ファクターは組み込みのシステム変数です。 これらを使用して、SQL タイプや影響を受ける行数など、セキュリティルール検証のためのコンテキスト情報を取得できます。
すべてのファクターは
@fac.で始まり、その後にファクター名が続きます。各モジュールのチェックポイントごとに、提供されるファクターは異なります。
表 1. ファクターリスト
ファクター | 説明 |
@fac.env_type | 環境タイプ。 値は |
@fac.sql_type | SQL スクリプトのタイプ ( |
@fac.detail_type | データ変更のタイプ:
|
@fac.is_logic | データベースが論理データベースであるかどうかを示します。 |
@fac.extra_info | その他の変更情報。 このファクターは現在使用されていません。 |
@fac.is_ignore_affect_rows | チェックをスキップするかどうかを示します。 |
@fac.insert_rows | 挿入操作で影響を受ける行数。 |
@fac.update_delete_rows | 影響を受ける行数。 |
@fac.max_alter_table_size | 変更されたテーブルの最大表領域サイズ。 |
@fac.is_has_security_column | SQL スクリプトに機密性の高い列が含まれているかどうかを示します。 |
@fac.security_column_list | SQL スクリプトに含まれる機密性の高い列のリスト。 |
@fac.risk_level | 検出されたリスクレベル。 有効な値は小文字の英語文字列で、低いものから順に次のとおりです:
|
@fac.risk_reason | このリスクレベルが検出された理由。 |
@fac.table_name_list | SQL 変更に関与するテーブル名のリスト。 例: 意味:SQL 変更に tb_order または tb1_order テーブルが含まれる場合、リスクレベルは高くなります。 |
アクション
アクションは、if 条件が満たされたときにシステムが実行する動作です。 例として、チケット送信の禁止、ワークフローの選択、実行の許可、実行の拒否などがあります。
すべてのアクションは
@act.で始まり、その後にアクション名が続きます。各モジュールのチェックポイントごとに、提供されるアクションは異なります。
表 2. アクションリスト
アクション | 説明 |
@act.allow_submit | チケットの実行送信を許可します。 |
@act.allow_execute_direct | SQL コンソールでの直接実行を許可します。 |
@act.forbid_execute | 実行を禁止します。 |
@act.mark_risk | リスクをマークします。 最初のパラメーターはリスクレベルを指定し、次の 4 つの小文字の英語の値のみをサポートします (低いものから順に): |
@act.do_not_approve | 承認テンプレートの ID を指定します。 詳細については、「承認ワークフローの設定」をご参照ください。 |
@act.choose_approve_template | |
@act.choose_approve_template_with_reason |