すべてのプロダクト
Search
ドキュメントセンター

Data Management:リレーショナルデータベースのSQL Console

最終更新日:Feb 13, 2025

データ管理 (DMS) では、SQLコンソールモジュールで操作のセキュリティルールを設定できます。 SQL Consoleで、リレーショナルデータベースと非リレーショナルデータベースを管理できます。 このトピックでは、SQL Consoleでの操作のセキュリティルールについて説明します。 この例では、ApsaraDB RDS for MySQLのセキュリティルールが使用されています。

SQLコンソールのチェックポイント

チェックポイント

説明

基本設定アイテム

クエリごとに返される最大行数、結果セットを変更できるかどうか、機密データを計算できるかどうかなどの基本的な設定を指定できます。

SQL実行数量基準

一度に送信できるSQL文の数を制限できます。

DQL SQL基準

データクエリ言語 (DQL) ステートメントの実行に制約を設定できます。

その他のSQL基準

複数の種類のSQL文の実行に制約を設定できます。 たとえば、未確認のSQL文の実行を許可し、テーブル全体を削除する文の実行を拒否できます。

SQL権限基準

データベース、テーブル、機密の列、および行に対する権限に基づいて、SQL文の実行に制約を設定できます。

SQL実行のパフォーマンス基準

関係するテーブルスペースのサイズが上限を超えた場合はDDLステートメントの実行を拒否し、影響を受ける行数が上限を超えた場合はDMLステートメントの実行を拒否できます。

データベースおよびテーブル列権限の例外認識基準

解析例外が発生した場合に、DQL、DML、DDL、またはデータ制御言語 (DCL) ステートメントなどのSQLステートメントの実行を続行するか拒否するかを指定できます。

論理データベースでのSQL実行条件

さまざまな種類のSQL文の実行に制約を設定できます。

説明

DMSは、チェックポイントに多数の定義済みの設定とルールを提供します。 ビジネス要件に基づいて、設定の変更、ルールのステータスの変更、セキュリティルールのカスタマイズを行うことができます。 詳細については、「セキュリティルールの管理」トピックのセキュリティルールの設定セクションをご参照ください。

次のフローチャートは、チェックポイントの仕組みを示しています。

要因とアクション

  • 因子は、DMSによって提供される事前定義された変数である。 要因を使用して、SQL文のカテゴリや影響を受けるデータ行の数など、セキュリティルールによって検証されるコンテキストを取得できます。

    • 因子名は、プレフィックス @ facで構成されます。 と要素の表示名を指定します。

    • セキュリティルールセットの [詳細] ページの各モジュールは、チェックポイントごとに異なる要素を提供します。

    表 1. SQLコンソールモジュールが提供する要因

    要素

    説明

    @ fac.sql_count

    一度に送信されるSQL文の数。

    @ fac.select_sql_count

    一度に送信されるSQL文のうちDQL文の数。

    @ fac.dml_sql_count

    一度に送信されるSQL文のうちのDML文の数。

    @ fac.sql_type

    SQL文のカテゴリ。 詳細については、このトピックの「DMSで実行できるSQLステートメント」をご参照ください。

    @ fac.sql_sub_type

    SQL文のサブカテゴリ。 詳細については、このトピックの「DMSで実行できるSQLステートメント」をご参照ください。

    @ fac.env_type

    環境のタイプ。 値は、DEVPRODUCTなどの環境タイプの表示名です。 詳細については、「インスタンスの環境タイプの変更」をご参照ください。

    @ fac.fulltable_delete

    現在のSQL文がテーブル全体を削除するかどうかを示します。 有効な値:

    • true

    • false

    @ fac.fulltable_update

    現在のSQL文がテーブル全体を更新するかどうかを示します。 有効な値:

    • true

    • false

    @ fac.current_sql

    現在のSQL文。

    @ fac.us er_is_admin

    現在のユーザーがDMS管理者であるかどうかを示します。 有効な値:

    • true

    • false

    @ fac.us er_is_dba

    現在のユーザーがデータベース管理者 (DBA) かどうかを示します。 有効な値:

    • true

    • false

    @ fac.us er_is_inst_dba

    現在のユーザーが現在のデータベースインスタンスのDBAであるかどうかを示します。 有効な値:

    • true

    • false

    @ fac.us er_is_sec_admin

    現在のユーザーがセキュリティ管理者であるかどうかを示します。 有効な値:

    • true

    • false

    @ fac.sql_affected_rows

    現在のSQL文の影響を受ける行数。

    説明

    この要因はCOUNT操作をトリガーします。 この要素は慎重に使用してください。

    @ fac.sql_relate_table_store_size

    現在のSQL文によってアクセスされるテーブルの推定合計サイズ。 単位:MB。

    説明

    この値は、DMSによって取得されたメタデータに基づいて推定されます。 値は実際の値ではありません。

  • アクションは、ifステートメントで指定された条件が満たされた場合にシステムが実行する操作です。 セキュリティルールに指定したアクションは、セキュリティルールの目的を示しています。 たとえば、チケットの送信を禁止したり、承認プロセスを選択したり、SQL文の実行を許可したり、SQL文の実行を拒否したりできます。

    • アクション名は、プレフィックス @ actで構成されます。 とアクションの表示名を指定します。

    • セキュリティルールセットの [詳細] ページの各モジュールは、異なるチェックポイントに対して異なるアクションを提供します。

    表 2. SQLコンソールモジュールによるアクション

    Action

    説明

    @ act.reject_execute

    現在のSQL文の実行を拒否します。

    @ act.allow_execute

    現在のSQL文の実行を許可します。

    @ act.reject_sql_type_execute

    SQL文の特定のサブカテゴリの実行を拒否します。 このアクションを使用する場合は、サブカテゴリを指定する必要があります。 例: @ act.reject_sql_type_execute 'UPDATE'

    @ act.allow_sql_type_execute

    SQL文の特定のサブカテゴリの実行を許可します。 このアクションを使用する場合は、サブカテゴリを指定する必要があります。 例: @ act.allow_sql_type_execute 'UPDATE'

    @ act.check_dml_sec_column_permission

    ユーザーに機密フィールドに対する権限があるかどうかを確認します。 ユーザーに必要な権限がない場合、データ変更のDMLステートメントは実行されません。

    @ act.uncheck_dml_sec_column_permission

    ユーザーが機密フィールドに対する権限を持っているかどうかはチェックしません。

    @ act.check_sql_access_permission

    実行するSQL文に含まれるデータベース、テーブル、またはフィールドに対する特定の権限がユーザーにあるかどうかを確認します。 たとえば、ユーザーがデータを照会したり、データを変更したりする権限を持っているかどうかを確認できます。

    @ act.uncheck_sql_access_permission

    実行するSQL文に含まれるデータベース、テーブル、またはフィールドに対する特定の権限がユーザーにあるかどうかは確認しません。

    @ act.enable_sec_column_mask

    機密フィールドに対する権限を持たないユーザーが送信したSQL文に対して返される、クエリ結果セット内の機密フィールドをマスクします。

    @ act.disable_sec_column_mask

    機密フィールドに対する権限を持たないユーザーが送信したSQL文に対して返されるクエリ結果セットの機密フィールドはマスクされません。

DMSで実行できるSQL文

DML

  • INSERT

  • INSERT_SELECT

  • SELECT_INTO

  • MULTI_INSERT

  • REPLACE

  • REPLACE_INTO

  • UPDATE

  • DELETE

  • マージ

  • REMOVE

  • MSCK_REPAIR

  • REFRESH_MATERIALIZED_VIEW

  • BEGIN

  • START_TRANSACTION

  • COMMIT

  • ROLLBACK

  • SAVEPOINT

  • RELEASE_SAVEPOINT

  • SET

  • ADD_EDGE

  • ADD_VERTEX

  • SET_PROPERTY

  • GDB_DROP

  • INSERT_MANY

  • INSERT_ONE

  • DELETE_MANY

  • DELETE_ONE

  • UPDATE_MANY

  • UPDATE_ONE

  • WLM_ADD_RULE

DDL

  • CREATE

  • CREATE_SCHEMA

  • CREATE_INDEX

  • CREATE_VIEW

  • CREATE_SEQUENCE

  • CREATE_TABLE

  • CREATE_TABLEGROUP

  • CREATE_PACKAGE

  • CREATE_SELECT

  • TRUNCATE

  • DROP

  • DROP_SCHEMA

  • DROP_INDEX

  • DROP_VIEW

  • DROP_TABLE

  • DROP_TABLEGROUP

  • DROP_SEQUENCE

  • RENAME

  • ALTER_TABLE_DROP_COLUMN

  • ALTER_TABLE_CHARACTER_COLLATE

  • ALTER_TABLE_AUTOINCREMENT

  • ALTER

  • ALTER_SCHEMA

  • ALTER_INDEX

  • ALTER_VIEW

  • ALTER_TABLE

  • ALTER_TABLEGROUP

  • ALTER_SEQUENCE

  • CREATE_FUNCTION

  • ALTER_FUNCTION

  • DROP_FUNCTION

  • CREATE_PROCEDURE

  • ALTER_PROCEDURE

  • DROP_PROCEDURE

  • MONGO_CREATE_INDEX

  • MONGO_DROP_INDEX

  • CREATE_DATABASE

  • ALTER_DATABASE

  • DROP_DATABASE

  • CREATE_USER

  • ALTER_USER

  • DROP_USER

  • CREATE_ROLE

  • DROP_ROLE

  • EXEC

  • CALL_PROCEDURE

  • CREATE_TRIGGER

  • ALTER_TRIGGER

  • DROP_TRIGGER

  • CREATE_EVENT

  • ALTER_EVENT

  • DROP_EVENT

  • ROLLBACK_DDL

  • CANCEL_DDL

  • 真空

  • SUBMIT_JOB

  • CANCEL_JOB

  • BUILD_TABLE

  • IF

DQL

  • SELECT

  • DESC

  • EXPLAIN

  • SHOW_INDEX

  • ショー

  • CHECK_TABLE

  • SHOW_DDL

  • リスト

  • GDB_QUERY

  • チェックサム

  • SELECT_PG_TERMINATION_BACKEND

  • WLM_LIST_RULE

DCL

  • GRANT

  • DECLARE

  • SET

  • ANALYZE

  • フラッシュ

  • 最適化

  • キル

  • RECOVER_DDL

  • REMOVE_DDL

  • SELECT_PG_TERMINATION_BACKEND