Data Management (DMS) のSQLレビュー機能は、送信されたSQLステートメントをレビューし、ステートメントを最適化するための提案を提供します。 この機能は、SQL文がデータベース開発標準に準拠していることや、インデックスがクエリに使用されることなど、高品質のコードを維持するのに役立ちます。 これは、SQLインジェクション攻撃のリスクを減らすのにも役立ちます。
前提条件
次のいずれかのデータベースタイプが使用されます。
Alibaba Cloud上にないApsaraDB RDS for MySQL、PolarDB for MySQL、AnalyticDB for MySQL、MySQLデータベース
ApsaraDB for MariaDB
XscaleのためのPolarDB
Oracle
PolarDB for PostgreSQL (Oracleと互換)
OceanBase
データベースインスタンスは、DMSの安定した変更またはセキュリティコラボレーションモードで管理されます。 詳細については、「コントロールモード」をご参照ください。
背景情報
プロジェクトの開発段階では、ビジネスロジックを実装してデータを表示できるように、SQL文を実行してデータベースにデータを挿入、削除、変更、およびクエリする必要があります。 プロジェクトを公開する前に、使用するすべてのSQL文を確認する必要があります。 これにより、データベース開発標準に準拠していないSQL文がオンライン環境に公開されなくなります。 したがって、ビジネスは影響を受けません。 たとえば、次のCREATE TABLEステートメントには、主キー、テーブルコメント、またはフィールドコメントは含まれません。
CREATE TABLE `test_sql_review_table` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`gmt_create` datetime NOT NULL,
`name` varchar(256) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
データベース管理者 (DBA) がすべてのSQL文を1つずつ手動で確認する場合、多数の作業リソースが必要になります。 このため、開発効率が低下する。
これを考慮して、DMSは、SQLレビューおよび最適化機能をセキュリティルールモジュールに統合するSQLレビュー機能を提供します。 SQLレビュー機能を使用して、SQL文をレビューし、最適化の提案を取得できます。 セキュリティルールでSQL仕様をカスタマイズできます。 たとえば、テーブルに主キーが必要であることを指定し、データ型と主キー列の数を制限できます。 詳細については、「SQLレビューの最適化」をご参照ください。
手順
DMSコンソールV5.0 にログインします。
上部のナビゲーションバーで、。 を選択します
DMSコンソールをシンプルモードで使用する場合は、コンソールの左上隅にあるアイコンの上にポインターを移動し、
を選択します。[SQL ReviewTickets] ページの右上隅にある [SQL Review] をクリックします。
[チケットアプリケーション] ページで、次の表に示すパラメーターを設定します。
パラメーター
説明
プロジェクト名
プロジェクトの名前。
データベース
SQL文が実行されるデータベース。
説明データベースに対するクエリ権限が必要です。 詳細については、「所有権限の表示」をご参照ください。
ビジネスの背景
SQLレビューの目的または目的。 このパラメーターを指定すると、不要な通信を減らすことができます。
利害関係者の変更
SQLレビューに関与した利害関係者。 指定されたすべての利害関係者は、チケットの詳細を表示し、承認プロセスに参加できます。 DMS管理者およびDBA以外の他のユーザーは、チケットの詳細を表示できません。
ファイル
SQLファイルのアップロードに使用されるメソッド。 次のいずれかの方法を使用できます。
アップロード: 1つ以上のSQLファイルをアップロードできます。
テキストを入力: iBATISまたはMyBatisフレームワークに基づいて
XML
形式でSQL文を入力するか、TXT
形式でSQL文を入力できます。
詳細については、このトピックの「サンプルSQLファイル」をご参照ください。
[保存] をクリックします。
DMSはSQLファイルを解析し、このデータベースに設定されているセキュリティルールに基づいて各SQL文をレビューします。 レビュー後、DMSはSQL文を最適化する方法に関する提案を返します。 提案は、改善しなければならない、潜在的な問題、改善の提案、およびインデックス推奨の4つのカテゴリに分類される。 詳細については、「SQLレビューの最適化」をご参照ください。
SQLレビューの結果を表示します。
次の表は、DMSによって提供されるさまざまな種類のレビュー結果を示しています。
状態
説明
Action
渡された
送信されたSQL文には、最適化する必要のある項目は含まれていませんが、潜在的な問題または最適化できる項目が含まれている可能性があることを示します。
SQL文と最適化の提案を表示するには、操作列の [詳細] をクリックします。
SQL文を変更するには、[操作] 列の [SQLの調整] をクリックします。
失敗しました
送信されたSQL文に最適化が必要な項目が含まれていることを示します。
最適化の提案を表示するには、操作列の [詳細] をクリックします。 SQL文を変更するには、[操作] 列の [SQLの調整] をクリックします。
承認または拒否
送信されたSQL文に、DMSのSQLレビュー機能によって提供されるSQLレビュー結果に加えて、解決できない、または解決する必要のない特定の履歴SQL問題が含まれていることを示します。
[操作] 列で、
または [手動レビュー]> [非承認] を選択して、レビュー結果を手動で承認または不承認にします。例外の解析
送信されたSQL文をDMSで識別できないことを示します。
操作列の [SQLの調整] をクリックして、SQL文を変更します。 次に、修正されたSQL文を再確認のために送信します。
保留中の分析
送信されたSQL文がDMSによって識別されるのを待っていることを示します。
非該当
承認ステップで、[承認の申請] をクリックします。 DMS管理者またはDBAは、SQL文を再度チェックします。
チケットが承認された後、チケットは閉じられます。
説明変更されたSQL文が依然としてチェックに失敗するか、DMSで解析できない場合は、[承認] ステップで [承認の送信] をクリックするとエラーメッセージが返されます。