はじめに

Vertica 9.1から、監査機能を提供するための新しい4つのシステムテーブルが追加されました。
これらのシステムテーブルを使うことで、データへのアクセスや不正な変更を参照できるようになりました。

監査用に追加された新しいシステムテーブル

Vertica 9.1で追加された監査用の4つのシステムテーブルを以下に示します。
AUDIT_MANAGING_USERS_PRIVILEGES
LOG_PARAMS
LOG_QUERIES
LOG_TABLES

追跡可能なSQL文

上記のシステムテーブルを使って追跡することができるSQL文を以下に示します。
DROP AUTHENTICATION文
GRANT/REVOKE文
LDAP連携に関する設定パラメータ

監査用のシステムテーブル

新しい4つのシステムテーブルについての概要とテーブル情報を以下に示します。

・AUDIT_MANAGING_USERS_PRIVILEGESシステムテーブル
ユーザの作成、変更、削除、権限の付与、認証についてのサマリー情報が格納されます。
このテーブルは、後述のLOG_PARAMSテーブル、LOG_QUERIESテーブル、LOG_TABLESテーブルを結合してフィルターしたものです。

カラム名データ型説明
ISSUED_TIMEVARCHARクエリが実行された時刻
USER_NAMEVARCHARクエリを実行したユーザ
USER_IDINTEGERクエリを実行したユーザのユーザID
HOSTNAMEVARCHARクエリを実行した接続元のホスト名、IPアドレスまたはURL
SESSION_IDVARCHARセッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます
AUDIT_TYPEVARCHAR監査の操作タイプ
・Query
・Parameter
・Table
AUDIT_TAG_NAMEVARCHAR特定のParameter、Query、またはTableのタグ名
REQUEST_TYPEVARCHARリクエストされたクエリのタイプ
・QUERY
・DDL
・LOAD
・UTILITY
・TRANSACTION
・PREPARE
・EXECUTE
・SET
・SHOW
など
REQUEST_IDINTEGERリクエストされた権限のID
SUBJECTVARCHARクエリの対象となったテーブルまたはパラメータの名前、もしくはサブジェクト
REQUESTVARCHARリクエストされた権限のリスト
SUCCESSVARCHARオペレーションの成功可否
CATEGORYVARCHAR監査カテゴリ


・LOG_PARAMSシステムテーブル
認証とセキュリティに関するパラメータ設定の変更をサマリーした情報を提供します。

カラム名データ型説明
ISSUED_TIMEVARCHARクエリが実行された時刻
USER_NAMEVARCHARクエリを実行したユーザ
USER_IDINTEGERクエリを実行したユーザのユーザID
HOSTNAMEVARCHARクエリを実行した接続元のホスト名、IPアドレスまたはURL
SESSION_IDVARCHARセッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます
AUDIT_TYPEVARCHAR監査の操作タイプ。
Parameterが表示されます。
AUDIT_TAG_NAMEVARCHAR特定のParameter、Query、またはTableのタグ名
REQUEST_TYPEVARCHARリクエストされたクエリのタイプ
・QUERY
・DDL
・LOAD
・UTILITY
・TRANSACTION
・PREPARE
・EXECUTE
・SET
・SHOW
など
REQUEST_IDINTEGERリクエストされた権限のID
SUBJECTVARCHARパラメータに設定された新しい値
REQUESTVARCHARリクエストされた権限のリスト
SUCCESSVARCHARオペレーションの成功可否
CATEGORYVARCHAR監査カテゴリ


・LOG_QUERIESシステムテーブル
認証とセキュリティに関するクエリ情報のサマリーを提供します。

カラム名データ型説明
ISSUED_TIMEVARCHARクエリが実行された時刻
USER_NAMEVARCHARクエリを実行したユーザ
USER_IDINTEGERクエリを実行したユーザのユーザID
HOSTNAMEVARCHARクエリを実行した接続元のホスト名、IPアドレスまたはURL
SESSION_IDVARCHARセッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます
AUDIT_TYPEVARCHAR監査の操作タイプ。
Queryが表示されます。
AUDIT_TAG_NAMEVARCHAR特定のQueryのタグ名
REQUEST_TYPEVARCHARリクエストされたクエリのタイプ
・QUERY
・DDL
・LOAD
・UTILITY
・TRANSACTION
・PREPARE
・EXECUTE
・SET
・SHOW
など
REQUEST_IDINTEGERリクエストされた権限のID
SUBJECTVARCHARクエリのサブジェクト
REQUESTVARCHARリクエストされた権限のリスト
SUCCESSVARCHARオペレーションの成功可否
CATEGORYVARCHAR監査カテゴリ


・LOG_TABLESシステムテーブル
システムテーブルへのクエリやシステムテーブルへのアクセスした情報を提供します。

カラム名データ型説明
ISSUED_TIMEVARCHARクエリが実行された時刻
USER_NAMEVARCHARクエリを実行したユーザ
USER_IDINTEGERクエリを実行したユーザのユーザID
HOSTNAMEVARCHARクエリを実行した接続元のホスト名、IPアドレスまたはURL
SESSION_IDVARCHARセッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます
AUDIT_TYPEVARCHAR監査の操作タイプ。
Tableが表示されます。
AUDIT_TAG_NAMEVARCHAR特定のTableのタグ名
REQUEST_TYPEVARCHARリクエストされたクエリのタイプ
Queryが表示されます。
REQUEST_IDINTEGERリクエストされた権限のID
SUBJECTVARCHARクエリで問い合わせされたテーブルの名前
REQUESTVARCHARリクエストされた権限のリスト
SUCCESSVARCHARオペレーションの成功可否
CATEGORYVARCHAR監査カテゴリ


システムテーブルの保存サイズ

これらのシステムテーブルの保存期間は時間的な期間ではなく、情報量のサイズです。
これらのシステムテーブルは、DCテーブルと呼ばれる特殊なテーブルを情報元としており、複数のDCテーブルを結合しています。
そのため、これらのシステムテーブルの保存サイズはDCテーブルの保存サイズに依存します。
各システムテーブルの情報元となるDCテーブルと、各DCテーブルの保存サイズを以下に記載します。

LOG_PARAMSの情報元
dc_requests_issued
dc_requests_completed
dc_session_starts
dc_configuration_changes
vs_audit_categories

LOG_PARAMSの情報元となるDCテーブルの保存サイズ
以下のSQLで、上限サイズと現在のサイズを確認することができます。


LOG_QUERIESの情報元

dc_requests_issued
dc_requests_completed
dc_session_starts
vs_audit_categories

LOG_QUERIESの情報元となるDCテーブルの保存サイズ
以下のSQLで、上限サイズと現在のサイズを確認することができます。


LOG_TABLESの情報元

dc_requests_issued
dc_requests_completed
dc_session_starts
dc_projections_used
vs_audit_categories

LOG_TABLESの情報元となるDCテーブルの保存サイズ
以下のSQLで、上限サイズと現在のサイズを確認することができます。


AUDIT_MANAGING_USERS_PRIVILEGESの情報元

LOG_PARAMS
LOG_QUERIES
LOG_TABLES

AUDIT_MANAGING_USERS_PRIVILEGESの情報元となるDCテーブルの保存サイズ
上記システムテーブルに依存します。

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。