SQL監査機能は、実行ユーザー、アクセスIP、操作タイプごとに現在のクラスタ内のSQL文を検索できるほか、検索結果のエクスポートもサポートしており、セキュリティ監査機能の強化に役立ちます。本記事では、具体的な操作手順を紹介します。
注意事項
SQL監査は有料機能です。クラウドプロバイダー、リージョン、課金項目によって料金が異なります。料金の詳細については、SQL監査の課金説明を参照してください。
同一インスタンス内のすべてのテナントのSQL監査ストレージ設定は同じです。ストレージ設定を変更する必要がある場合は、インスタンスページにアクセスしてください。テナントページでは変更できません。
説明
SQL監査機能は現在、MySQLモードとOracleモードのテナントをサポートしています。監査ルールの設定機能(SQLタイプとターゲットデータベースアカウント)は、クラスタバージョンが >= 4.2.5 のインスタンスでのみサポートされます。
ストレージ設定の設定
説明
SQL監査を有効にしたテナントでは、監査データをOB Cloud、カスタムログサービス、またはオブジェクトストレージに保存することができます。
OB Cloudデータベースコンソールにログインします。
左側のナビゲーションバーで、インスタンス をクリックします。
インスタンスリストで対象のインスタンスを見つけ、インスタンス名をクリックしてインスタンスのダッシュボードに移動します。
左側のナビゲーションバーで 診断 をクリックし、リアルタイム診断 タブを選択します(診断 ページ内)。
ページの中央で SQL監査 タブをクリックします。
ストレージ設定 をクリックしてストレージ設定を変更し、ポップアップウィンドウで設定を変更します。
OB Cloud
総ストレージ期間:7日から720日の総ストレージ期間を設定できます。この期間を超えるSQL実行レコードは自動的に削除されます。
カスタムログサービス
説明
-
\n
- SQL監査データをカスタムログサービスにプッシュする機能は、Alibaba Cloudインスタンスでのみサポートされています。 \n
- AccessKey IDとAccessKey Secretには、以下のAPI権限を付与する必要があります:\n
-
\n
- PostLogStoreLogs:ログストアにログを書き込む \n
- GetLogStore:ログストアのメタ情報を取得する \n
\n
パラメータ説明プロジェクト(Project) ログサービスのプロジェクト名。 ログストア(Logstore) ログサービスのログストア名。 AccessKey ID ログサービスへのアクセスIDで、ユーザーを識別するために使用されます。 AccessKey Secret 署名文字列を暗号化するためおよびログサービスが署名文字列を検証するために使用されるキーで、秘密にしておく必要があります。 オブジェクトストレージ
説明
- SQL監査データをオブジェクトストレージにプッシュする機能は、Alibaba CloudインスタンスとAWSインスタンスでのみサポートされています。
- SQL監査データは、指定したオブジェクトストレージのBucketに保存されます。
パラメータ説明Bucket オブジェクトストレージのBucket名。 ディレクトリ オブジェクトストレージのBucket内のディレクトリです。複数階層のディレクトリをサポートします。 Access Key ID オブジェクトストレージへのアクセス用AccessKey ID。 Access Key Secret オブジェクトストレージへのアクセス用AccessKey Secret。
転送設定を変更 をクリックすると、保存先および関連パラメータを変更できます。
説明
保存先設定を変更すると、新しい監査データは新しい保存先にプッシュされますが、既存の保存先にあるデータには影響しません。
テナントSQL監査の有効化
OB Cloudデータベースコンソールにログインします。
左側のナビゲーションバーで、**インスタンス**をクリックします。
インスタンスリストで対象のインスタンスを見つけ、インスタンス名をクリックしてインスタンスのダッシュボードに移動します。
左側のナビゲーションバーで**診断をクリックし、リアルタイム診断タブを選択します(診断**ページ内)。
ページ中央の**SQL監査**タブをクリックします。
対応するテナントの**SQL監査を有効にする**をクリックします。
ポップアップウィンドウで関連パラメータを設定します。
対象範囲:デフォルトは現在選択されているテナントです。**このインスタンスの他のテナントのSQL監査も有効にする(現在SQL監査が有効でないテナントを含む)**をチェックすると、このインスタンスの他のテナントのSQL監査が一括で有効になります。
ストレージ設定:ストレージターゲットを選択します。監査データは選択したストレージターゲットにプッシュされます。ストレージターゲットがOB Cloudの場合、監査データは従量課金制となります。課金ポリシーについてはSQL監査の料金説明を参照してください。
合計保存期間:7日から720日まで設定可能です。設定された期間を超えるSQL実行レコードは削除されます。
監査規則:ストレージターゲットがオブジェクトストレージの場合、記録するSQLタイプとターゲットデータベースアカウントを設定できます。
説明
- SQLタイプはデフォルトで全選択されており、すべてのタイプのSQLが記録されます。
- 監査ルールの設定は、ストレージ設定がオブジェクトストレージの場合にのみサポートされます。
- この機能は、クラスタバージョンがv4.2.5以上のMySQLモードおよびOracleモードのテナントでのみサポートされます。
MySQL
ストレージターゲットがオブジェクトストレージに設定されている場合、監査ルールを設定する必要があります:
パラメータ説明ターゲットデータベースアカウント 監査対象のデータベースアカウントを選択します。すべてのアカウント(現在および将来新規作成されるものを含む)または特定のアカウントを選択できます。 - デフォルトではすべてのアカウントが選択されています
- 特定のアカウントに切り替えると、アカウント選択ダイアログが表示されます。複数選択や検索機能をサポートしています。
SQLタイプ 記録するSQLタイプを選択します。 - データベースバージョンがV4.2.5~4.4.2.1の場合:SQLの大分類でのフィルタリングをサポートしますが、SQLのサブタイプまで展開することはできません。SQLの大分類は、接続、テーブルアクセス、DDL、権限変更です。
- データベースバージョンがV4.4.2.1~4.5.0.0およびV4.6.1.0以上の場合:上記の大分類に加え、各サブタイプまでさらに展開することができます。例えば、テーブルアクセスの下ではSELECT/INSERT/UPDATE/DELETE、DDLの下ではCREATE/ALTER/DROP、権限変更の下ではGRANT/REVOKEなどが該当します。
Oracle
ストレージターゲットがオブジェクトストレージに設定されている場合、監査ルールを設定する必要があります:
パラメータ説明ターゲットデータベースアカウント 監査対象のデータベースアカウントを選択します。すべてのアカウント(現在および将来新規作成されるものを含む)または特定のアカウントを選択できます。 - デフォルトではすべてのアカウントが選択されています
- 特定のアカウントに切り替えると、アカウント選択ダイアログが表示されます。複数選択や検索機能をサポートしています。
SQLタイプ 記録するSQLタイプを選択します。SQLの大分類は、接続、テーブルアクセス、DDL、権限変更です。Oracleテナントの監査ルール自体でSQLステートメントのタイプを指定する必要がありますが、デフォルトでは各サブタイプまで展開することがサポートされています。例えば、テーブルアクセスの下ではDELETE TABLE/INSERT TABLE/SELECT SEQUENCE/SELECT TABLE/UPDATE TABLE、DDLの下ではINDEX/OUTLINE/PROCEDURE/PROFILE/ROLE/SEQUENCE/SYNONYM/TABLE/TABLESPACE、権限変更の下ではALTER SYSTEM/CLUSTER/SYSTEM AUDIT/SYSTEM GRANT/EXECUTE PROCEDURE/GRANT PROCEDURE/GRANT SEQUENCE/GRANT TABLEなどが該当します。 - サポートされているデータベースバージョン:V4.4.2.1~4.5.0.0およびV4.6.1.0以上。
テナント操作列のアイコンをクリックすると、ルールを変更またはSQL監査を無効にできます。
ストレージ期間の変更
説明
SQL監査データの保存期間の変更は、SQL監査データがOceanBase Cloudに保存されている場合にのみサポートされます。ログサービスまたはオブジェクトストレージを保存先として設定している場合は、対応するプラットフォームで保存設定を変更してください。
**SQL監査タブのテナントリストで、対象テナントの操作列にある保存期間を変更**をクリックします。
ポップアップウィンドウで関連パラメータを設定します:
- オブジェクトの設定:現在のテナント名が表示されます。
- インスタンス内の他のテナントも同時に変更する:オプションです。チェックすると、設定がインスタンス内の他のSQL監査が有効なテナントに同期されます。
- 合計保存期間:7日から720日まで設定可能です。設定した期間を超えるSQL実行レコードは削除されます。
**確定**をクリックします。
SQL監査の停止
**SQL監査タブのテナントリストで、対象テナントの操作列にあるSQL監査を無効にする**をクリックします。
ポップアップウィンドウのテキストボックスにcloseと入力し、**閉じる**をクリックします。
SQL監査レコードの表示とダウンロード
説明
SQL監査データがOB Cloudに保存されている場合にのみ、ページ上で直接監査レコードを表示およびダウンロードできます。保存先がログサービスまたはオブジェクトストレージに設定されている場合は、対応するプラットフォームにアクセスしてデータを表示またはダウンロードしてください。
**SQL監査タブで、展開する**をクリックします。
条件に基づいてフィルタリングします。以下の項目はすべてオプションです。
フィルタオプション説明データベース 対象テナント内で表示するデータベースを1つ以上選択します。 ノード 表示するノードを1つ以上選択します。 キーワード 表示するSQL文に含まれる可能性のあるキーワードを選択します。複数のキーワードを入力でき、「and」または「or」の関係を指定できます。 ユーザー名 表示するテナント名を1つ以上入力します。 操作タイプ ドロップダウンリストから表示する操作タイプを1つ以上選択します。 クライアントIP 表示するクライアントIPを入力します。 スキャンされたレコード 表示するスキャンレコード数の範囲を入力します。 実行時間 (ms) 表示するSQL文の実行時間範囲を入力します。 時間範囲 SQLの実行時間範囲を選択します。時間範囲の幅は6時間を超えてはなりません。 クエリ結果で以下の情報を確認します: SQL文、データベース、ユーザー、クライアントIP、操作タイプ、実行結果、リクエスト時間、実行時間 (ms)、スキャンされた行、更新された行数。
右上のアイコンをクリックして、クエリ結果リストをダウンロードします。
説明
現在、最大100件の監査レコードのダウンロードをサポートしています。クエリレコード数が100件を超える場合、ダウンロード時にページのソート順序に従って最初の100件のレコードのみがダウンロードされます。