はじめに
Vertica 9.1から、監査機能を提供するための新しい4つのシステムテーブルが追加されました。
これらのシステムテーブルを使うことで、データへのアクセスや不正な変更を参照できるようになりました。
監査用に追加された新しいシステムテーブル
Vertica 9.1で追加された監査用の4つのシステムテーブルを以下に示します。
LOG_PARAMS
LOG_QUERIES
LOG_TABLES
追跡可能なSQL文
上記のシステムテーブルを使って追跡することができるSQL文を以下に示します。
GRANT/REVOKE文
LDAP連携に関する設定パラメータ
監査用のシステムテーブル
新しい4つのシステムテーブルについての概要とテーブル情報を以下に示します。
・AUDIT_MANAGING_USERS_PRIVILEGESシステムテーブル
ユーザの作成、変更、削除、権限の付与、認証についてのサマリー情報が格納されます。
このテーブルは、後述のLOG_PARAMSテーブル、LOG_QUERIESテーブル、LOG_TABLESテーブルを結合してフィルターしたものです。
| カラム名 | データ型 | 説明 |
|---|---|---|
| ISSUED_TIME | VARCHAR | クエリが実行された時刻 |
| USER_NAME | VARCHAR | クエリを実行したユーザ |
| USER_ID | INTEGER | クエリを実行したユーザのユーザID |
| HOSTNAME | VARCHAR | クエリを実行した接続元のホスト名、IPアドレスまたはURL |
| SESSION_ID | VARCHAR | セッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます |
| AUDIT_TYPE | VARCHAR | 監査の操作タイプ ・Query ・Parameter ・Table |
| AUDIT_TAG_NAME | VARCHAR | 特定のParameter、Query、またはTableのタグ名 |
| REQUEST_TYPE | VARCHAR | リクエストされたクエリのタイプ ・QUERY ・DDL ・LOAD ・UTILITY ・TRANSACTION ・PREPARE ・EXECUTE ・SET ・SHOW など |
| REQUEST_ID | INTEGER | リクエストされた権限のID |
| SUBJECT | VARCHAR | クエリの対象となったテーブルまたはパラメータの名前、もしくはサブジェクト |
| REQUEST | VARCHAR | リクエストされた権限のリスト |
| SUCCESS | VARCHAR | オペレーションの成功可否 |
| CATEGORY | VARCHAR | 監査カテゴリ |
・LOG_PARAMSシステムテーブル
認証とセキュリティに関するパラメータ設定の変更をサマリーした情報を提供します。
| カラム名 | データ型 | 説明 |
|---|---|---|
| ISSUED_TIME | VARCHAR | クエリが実行された時刻 |
| USER_NAME | VARCHAR | クエリを実行したユーザ |
| USER_ID | INTEGER | クエリを実行したユーザのユーザID |
| HOSTNAME | VARCHAR | クエリを実行した接続元のホスト名、IPアドレスまたはURL |
| SESSION_ID | VARCHAR | セッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます |
| AUDIT_TYPE | VARCHAR | 監査の操作タイプ。 Parameterが表示されます。 |
| AUDIT_TAG_NAME | VARCHAR | 特定のParameter、Query、またはTableのタグ名 |
| REQUEST_TYPE | VARCHAR | リクエストされたクエリのタイプ ・QUERY ・DDL ・LOAD ・UTILITY ・TRANSACTION ・PREPARE ・EXECUTE ・SET ・SHOW など |
| REQUEST_ID | INTEGER | リクエストされた権限のID |
| SUBJECT | VARCHAR | パラメータに設定された新しい値 |
| REQUEST | VARCHAR | リクエストされた権限のリスト |
| SUCCESS | VARCHAR | オペレーションの成功可否 |
| CATEGORY | VARCHAR | 監査カテゴリ |
・LOG_QUERIESシステムテーブル
認証とセキュリティに関するクエリ情報のサマリーを提供します。
| カラム名 | データ型 | 説明 |
|---|---|---|
| ISSUED_TIME | VARCHAR | クエリが実行された時刻 |
| USER_NAME | VARCHAR | クエリを実行したユーザ |
| USER_ID | INTEGER | クエリを実行したユーザのユーザID |
| HOSTNAME | VARCHAR | クエリを実行した接続元のホスト名、IPアドレスまたはURL |
| SESSION_ID | VARCHAR | セッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます |
| AUDIT_TYPE | VARCHAR | 監査の操作タイプ。 Queryが表示されます。 |
| AUDIT_TAG_NAME | VARCHAR | 特定のQueryのタグ名 |
| REQUEST_TYPE | VARCHAR | リクエストされたクエリのタイプ ・QUERY ・DDL ・LOAD ・UTILITY ・TRANSACTION ・PREPARE ・EXECUTE ・SET ・SHOW など |
| REQUEST_ID | INTEGER | リクエストされた権限のID |
| SUBJECT | VARCHAR | クエリのサブジェクト |
| REQUEST | VARCHAR | リクエストされた権限のリスト |
| SUCCESS | VARCHAR | オペレーションの成功可否 |
| CATEGORY | VARCHAR | 監査カテゴリ |
・LOG_TABLESシステムテーブル
システムテーブルへのクエリやシステムテーブルへのアクセスした情報を提供します。
| カラム名 | データ型 | 説明 |
|---|---|---|
| ISSUED_TIME | VARCHAR | クエリが実行された時刻 |
| USER_NAME | VARCHAR | クエリを実行したユーザ |
| USER_ID | INTEGER | クエリを実行したユーザのユーザID |
| HOSTNAME | VARCHAR | クエリを実行した接続元のホスト名、IPアドレスまたはURL |
| SESSION_ID | VARCHAR | セッションID。ユニークなセッションIDですが、セッションがクローズされると再利用されます |
| AUDIT_TYPE | VARCHAR | 監査の操作タイプ。 Tableが表示されます。 |
| AUDIT_TAG_NAME | VARCHAR | 特定のTableのタグ名 |
| REQUEST_TYPE | VARCHAR | リクエストされたクエリのタイプ Queryが表示されます。 |
| REQUEST_ID | INTEGER | リクエストされた権限のID |
| SUBJECT | VARCHAR | クエリで問い合わせされたテーブルの名前 |
| REQUEST | VARCHAR | リクエストされた権限のリスト |
| SUCCESS | VARCHAR | オペレーションの成功可否 |
| CATEGORY | VARCHAR | 監査カテゴリ |
システムテーブルの保存サイズ
これらのシステムテーブルの保存期間は時間的な期間ではなく、情報量のサイズです。
これらのシステムテーブルは、DCテーブルと呼ばれる特殊なテーブルを情報元としており、複数のDCテーブルを結合しています。
そのため、これらのシステムテーブルの保存サイズはDCテーブルの保存サイズに依存します。
各システムテーブルの情報元となるDCテーブルと、各DCテーブルの保存サイズを以下に記載します。
LOG_PARAMSの情報元
dc_requests_completed
dc_session_starts
dc_configuration_changes
vs_audit_categories
LOG_PARAMSの情報元となるDCテーブルの保存サイズ
以下のSQLで、上限サイズと現在のサイズを確認することができます。
select
node_name,
table_name,
component,
disk_size_kb,
current_disk_bytes
from
data_collector
where
table_name = 'dc_requests_issued'
or table_name = 'dc_requests_completed'
or table_name = 'dc_session_starts'
or table_name = 'dc_configuration_changes'
order by
table_name
;
node_name | table_name | component | disk_size_kb | current_disk_bytes
-----------------+--------------------------+----------------------+--------------+--------------------
v_ssbm_node0001 | dc_configuration_changes | ConfigurationChanges | 2000 | 1534
v_ssbm_node0002 | dc_configuration_changes | ConfigurationChanges | 2000 | 1758
v_ssbm_node0003 | dc_configuration_changes | ConfigurationChanges | 2000 | 1758
v_ssbm_node0001 | dc_requests_completed | RequestsCompleted | 50000 | 294693
v_ssbm_node0002 | dc_requests_completed | RequestsCompleted | 50000 | 0
v_ssbm_node0003 | dc_requests_completed | RequestsCompleted | 50000 | 0
v_ssbm_node0001 | dc_requests_issued | RequestsIssued | 50000 | 389759
v_ssbm_node0002 | dc_requests_issued | RequestsIssued | 50000 | 0
v_ssbm_node0003 | dc_requests_issued | RequestsIssued | 50000 | 0
v_ssbm_node0001 | dc_session_starts | SessionStarts | 5000 | 531264
v_ssbm_node0002 | dc_session_starts | SessionStarts | 5000 | 521414
v_ssbm_node0003 | dc_session_starts | SessionStarts | 5000 | 523382
(12 rows)LOG_QUERIESの情報元
dc_requests_completed
dc_session_starts
vs_audit_categories
LOG_QUERIESの情報元となるDCテーブルの保存サイズ
以下のSQLで、上限サイズと現在のサイズを確認することができます。
select
node_name,
table_name,
component,
disk_size_kb,
current_disk_bytes
from
data_collector
where
table_name = 'dc_requests_issued'
or table_name = 'dc_requests_completed'
or table_name = 'dc_session_starts'
order by
table_name
;
node_name | table_name | component | disk_size_kb | current_disk_bytes
-----------------+-----------------------+-------------------+--------------+--------------------
v_ssbm_node0001 | dc_requests_completed | RequestsCompleted | 50000 | 295029
v_ssbm_node0002 | dc_requests_completed | RequestsCompleted | 50000 | 0
v_ssbm_node0003 | dc_requests_completed | RequestsCompleted | 50000 | 0
v_ssbm_node0001 | dc_requests_issued | RequestsIssued | 50000 | 390398
v_ssbm_node0002 | dc_requests_issued | RequestsIssued | 50000 | 0
v_ssbm_node0003 | dc_requests_issued | RequestsIssued | 50000 | 0
v_ssbm_node0001 | dc_session_starts | SessionStarts | 5000 | 551841
v_ssbm_node0002 | dc_session_starts | SessionStarts | 5000 | 541023
v_ssbm_node0003 | dc_session_starts | SessionStarts | 5000 | 543081
(9 rows)LOG_TABLESの情報元
dc_requests_completed
dc_session_starts
dc_projections_used
vs_audit_categories
LOG_TABLESの情報元となるDCテーブルの保存サイズ
以下のSQLで、上限サイズと現在のサイズを確認することができます。
select
node_name,
table_name,
component,
disk_size_kb,
current_disk_bytes
from
data_collector
where
table_name = 'dc_requests_issued'
or table_name = 'dc_requests_completed'
or table_name = 'dc_session_starts'
or table_name = 'dc_projections_used'
order by
table_name
;
node_name | table_name | component | disk_size_kb | current_disk_bytes
-----------------+-----------------------+-------------------+--------------+--------------------
v_ssbm_node0001 | dc_projections_used | ProjectionsUsed | 150000 | 34520
v_ssbm_node0002 | dc_projections_used | ProjectionsUsed | 150000 | 0
v_ssbm_node0003 | dc_projections_used | ProjectionsUsed | 150000 | 0
v_ssbm_node0001 | dc_requests_completed | RequestsCompleted | 50000 | 295700
v_ssbm_node0002 | dc_requests_completed | RequestsCompleted | 50000 | 0
v_ssbm_node0003 | dc_requests_completed | RequestsCompleted | 50000 | 0
v_ssbm_node0001 | dc_requests_issued | RequestsIssued | 50000 | 391756
v_ssbm_node0002 | dc_requests_issued | RequestsIssued | 50000 | 0
v_ssbm_node0003 | dc_requests_issued | RequestsIssued | 50000 | 0
v_ssbm_node0001 | dc_session_starts | SessionStarts | 5000 | 589076
v_ssbm_node0002 | dc_session_starts | SessionStarts | 5000 | 578962
v_ssbm_node0003 | dc_session_starts | SessionStarts | 5000 | 581194
(12 rows)AUDIT_MANAGING_USERS_PRIVILEGESの情報元
LOG_QUERIES
LOG_TABLES
AUDIT_MANAGING_USERS_PRIVILEGESの情報元となるDCテーブルの保存サイズ
上記システムテーブルに依存します。
検証バージョンについて
この記事の内容はVertica 9.1で確認しています。