このページでは、DMS でデータ変更チケットを提出する際に発生する一般的なエラーの解決方法について説明します。
セキュリティルールにより SQL ステートメントがブロックされました
エラーメッセージの例:
SQL ステートメントの種別チェックに失敗しました。セキュリティルールに基づき、INSERT コマンドタイプは直接実行が禁止されています。DBA または管理者に連絡してルールを調整してください。ルールを編集するには、「セキュリティおよびディザスタリカバリ(DBS)」 > 「セキュリティルール」 > 「編集」 > 「SQL 正誤確認」 > 「SQL 実行ルール」を選択します。コマンドタイプに該当するルールが見つからなかったため、デフォルトで実行が禁止されています。原因: データベース(セキュアコラボレーションモードで管理)にバインドされたセキュリティルールにより、SQL ステートメントの実行または提出がブロックされています。
ご自身のケースに該当するのはどちらですか?
既知のステートメント — DMS がステートメントの種別を識別できますが、現在のセキュリティルールによりデフォルトでブロックされています。
不明なステートメント — DMS がステートメントの種別を識別できません。
既知のステートメント
DMS がエラーメッセージ内のステートメントを識別しましたが、セキュリティルールによりデフォルトで実行が禁止されています。DBA または DMS 管理者に連絡し、ルールを更新してください。
ステップ 1:セキュリティルールセットの名称を確認します。
データ変更チケットの詳細 ページに移動し、右上隅の 操作ログ をクリックします。表示されるセキュリティルールセットの名称をメモしてください。
ステップ 2:セキュリティルールを更新します。
DMS コンソール V5.0 にログインします。
トップナビゲーションバーで、セキュリティおよびディザスタリカバリ(DBS) > セキュリティルール を選択します。
セキュリティルール タブで、対象のセキュリティルールセットを見つけ、操作 列の 編集 をクリックします。
左側のナビゲーションウィンドウで、SQL 正誤確認 をクリックします。
チェックポイント で、エラーメッセージと一致するオプションを選択します。上記の例では、SQL 実行ルール を選択します。
修正対象のセキュリティルールを見つけ、操作 列の 編集 をクリックします。
エラーメッセージに表示される SQL ステートメントの種別に基づいてルールを選択してください。たとえば、エラーメッセージに
CREATE_INDEXと表示されている場合は、DDL 関連のセキュリティルールを選択します。エラーメッセージに表示された SQL ステートメントの種別を、セキュリティルールの DSL 構文に追加します。たとえば、
CREATE_INDEXがブロックされている場合、以下のように DDL 構文に追加します。
送信 をクリックします。
ステップ 3:事前チェックを再実行します。
チケットの詳細ページで、事前チェックセクションの 再実行 をクリックします。DMS は、更新後のルールに基づいてステートメントの種別を再評価します。
不明なステートメント
DMS がステートメントの種別を識別できません。まず、SQL ステートメント自体が正しいかどうかを確認してください。
SQL ステートメントが誤っている場合:
事前チェックセクションで SQL の変更 をクリックします。
ステートメントを修正し、変更内容を確認します。
再実行 をクリックして、ステートメントの種別チェックを再度実行します。
SQL ステートメントが正しい場合:
事前チェックセクションで 詳細の表示 をクリックし、UNKNOWN としてフラグが付いたステートメントを確認します。
DBA または DMS 管理者に連絡し、UNKNOWN ステートメントをセキュリティルールに追加して、DMS による実行を許可するよう依頼します。
変更が反映された後、再実行 をクリックします。
セキュリティルールの変更方法については、「セキュリティルールの変更」をご参照ください。
影響行数のチェック時に構文チェックに失敗しました
エラーメッセージの例:
影響行数のチェックに失敗しました。構文チェックに失敗しました。エラーメッセージ:ERROR。位置 37、1 行目、31 列目、トークン WHERE。原因: 事前チェックステップにおいて、DMS はスキャン対象行数を確認することで、SQL ステートメントの構文が正しいかどうかを検証します。
SQL の構文が誤っている場合:
構文エラーを修正し、事前チェックセクションの 再実行 をクリックします。DMS はスキャン対象行数のチェックを再実行します。
SQL の構文が正しい場合:
事前チェックセクションで、スキャン対象行数のチェック の右側にある スキップ をクリックします。DMS はこのチェックを無視し、チケットの処理を継続します。