Lindorm で SQL 監査ログを有効化して表示します。
前提条件
LindormTable のマイナーバージョンが 2.7.6 以降である必要があります。LindormTable のマイナーバージョンの確認方法または更新方法については、「LindormTable のリリースノート」および「Lindorm インスタンスのマイナーエンジンバージョンをアップグレードする」をご参照ください。
注意事項
-
SQL 監査ログ機能は、Lindorm Serverless およびシングルノードインスタンスではサポートされていません。
RAM ユーザーとして監査ログ機能を有効化する場合、その RAM ユーザーに AliyunLogFullAccess 権限を付与する必要があります。RAM ユーザーへの権限付与方法の詳細については、「RAM ユーザーへの権限付与」をご参照ください。
-
監査ログ機能を有効化すると、Lindorm は Lindorm インスタンスがデプロイされているリージョンにプロジェクトおよび専用 Logstore を作成します。
-
プロジェクトの命名形式は
aliyun-product-Alibaba Cloud Account ID-region IDです。 -
専用 Logstore の名前は
lindorm-sql-audit-logです。
-
専用 Logstore に対して特定の操作は実行できません。たとえば、専用 Logstore へのデータ書き込み、インデックスの変更または削除、属性の変更はできません。ただし、データクエリ、統計分析、アラート機能などの機能には制限はありません。
Log Service (SLS) が利用可能であることを確認してください。SLS が利用不可になると、完全なログ分析機能を使用できなくなります。
監査ログタイプ
Lindorm の SQL 監査ログには、以下のタイプの SQL 操作が記録されます。
CREATE DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE などの DDL 操作
INSERT、UPSERT、DELETE、UPDATE などの DML 操作
SELECT などの DQL 操作
通常、DML および DQL 操作は頻繁に発生し、これらの操作をログに記録すると、ご利用のインスタンスのパフォーマンスおよび安定性に影響を与える可能性があります。そのため、ワイドテーブルエンジンはデフォルトで DDL の SQL 監査ログのみを記録します。DML および DQL の監査ログを有効化するには、AUDIT_LEVEL システム変数を使用して監査レベルを調整してください。詳細な手順については、「監査ログレベルの変更」をご参照ください。
SQL 監査ログ機能の有効化
課金
Log Service は、ストレージ容量および保持期間に基づき、SQL 監査ログに対して従量課金を行います。詳細な料金情報については、Log Service 料金をご参照ください。
操作手順
Lindorm コンソールにログインします。
ページ左上隅で、インスタンスがデプロイされているリージョンを選択します。
Instancesページで、対象インスタンスの ID をクリックするか、インスタンスのActions列にあるView Instance Detailsをクリックします。
-
左側のナビゲーションウィンドウで、Wide Table Engineをクリックします。
-
SQL 監査ログタブをクリックし、監査ログの有効化をクリックします。
-
SQL 監査ログの有効化ダイアログボックスで、OKをクリックします。
SQL 監査ログの表示
ログ保持期間
デフォルトでは、Lindorm の SQL 監査ログは 30 日間保持されます。Lindorm コンソールでログ保持期間を変更できます。保持期間が経過すると、ログは自動的に削除されます。
ログ保持期間の変更
Lindorm コンソールにログインします。
ページ左上隅で、インスタンスがデプロイされているリージョンを選択します。
Instancesページで、対象インスタンスの ID をクリックするか、インスタンスのActions列にあるView Instance Detailsをクリックします。
左側のナビゲーションウィンドウで、を選択します。右上隅の保存期限の変更をクリックし、表示されるダイアログボックスで新しい保持期間を設定します。
変更するをクリックします。
監査ログの表示
Lindorm コンソールにログインします。
ページ左上隅で、インスタンスがデプロイされているリージョンを選択します。
Instancesページで、対象インスタンスの ID をクリックするか、インスタンスのActions列にあるView Instance Detailsをクリックします。
左側のナビゲーションウィンドウで、を選択して、ワイドテーブルエンジンの監査ログ詳細を表示します。
説明デフォルトでは、直近 15 分のログ詳細が表示されます。ビジネス要件に応じて期間を変更することもできます。
(オプション) Rawログタブでは、さまざまな条件でログをフィルターできます。左側のIndex Fieldsパネルを使用して、db、clientIp、failなどのフィールドでフィルターできます。右側ペインには、各ログの詳細フィールド(
sqlType、user、affectRows、checkRows、clientIp、clientPort、connectionIdなど)が表示されます。たとえば、dbフィールドの下でdefaultを選択すると、特定のデータベースからの監査レコードをフィルターできます。
監査ログのフィールド
フィールド | 説明 |
instance_id | Lindorm インスタンスの ID。 |
reqId | 操作監査ログを識別する一意の ID。 |
user | 操作監査ログに対応するユーザー名。 |
fail | SQL ステートメントが正常に実行されたかどうかを示します。 |
reason | 操作監査ログ内のエラーメッセージ。このメッセージは、操作中にエラーが発生した場合にのみ返されます。 |
connectionId | クライアントの接続 ID。 |
protocol | クライアントプロトコルタイプ。有効値:Avatica および MySQL。 |
db | 選択されたデータベースの名前。 |
sql | 実行された SQL ステートメント。 |
sqlType | SQL ステートメントのタイプ。有効値: |
params | SQL ステートメントで指定されたパラメーター。複数のパラメーターはカンマ (,) で区切ります。このフィールドは、パラメーターがバインドされるクエリシナリオで使用可能です。 |
sqlTime | SQL ステートメントが実行された時刻。 |
responseTime | 応答時間。単位:ミリ秒。 |
checkRows | スキャンされた行数。クエリ中にデータストレージエンジンから返された行数を示します。 |
affectRows | ステートメントによって影響を受けた行数。INSERT、UPDATE、または DELETE 操作の場合、affectRows は変更された行数を示します。クエリ文の場合、affectRows は返された行数を示します。 |
dbVersion | 接続先サーバー上の SQL バージョン。 |
hostname | サーバーノード上のホスト名。 |
clientIp | クライアントの IP アドレス。 |
clientPort | クライアントのポート番号。 |
監査ログタイプの変更
ALTER SYSTEM 文を実行して AUDIT_LEVEL パラメーターの値を変更し、SQL 監査ログの出力レベルを調整できます。
有効値:
0:DDL ログを記録。
1:DDL および DML ログを記録。
2:DDL および DQL ログを記録。
3:DDL、DML、および DQL ログを記録。
例
監査ログレベルを変更して、DDL および DQL ログを記録するように設定します。
ALTER SYSTEM SET AUDIT_LEVEL = 2;結果の確認
SHOW SYSTEM VARIABLES LIKE 'AUDIT_LEVEL'; 文を実行して、変更が正常に適用されたことを確認します。
システム変数の詳細については、「ALTER SYSTEM」をご参照ください。