Open harada-toshi opened 7 years ago
(Below, it is written in Japanese.)
object_name = 'テストスキーマ.テストテーブル'
[output] logger = 'serverlog' [option] log_parameter = on [rule] class = 'CONNECT' database = 'テストデータベース' [rule] class = 'READ,WRITE,MISC' object_name = 'テストスキーマ.テストテーブル'
CREATE SCHEMA テストスキーマ; CREATE TABLE テストスキーマ.テストテーブル ("識別子" integer, "データ" text); PREPARE 準備文1(int, text) AS INSERT INTO テストスキーマ.テストテーブル VALUES ($1, $2); EXECUTE 準備文1(1, 'あああ'); PREPARE 準備文2(int, text) AS SELECT * FROM テストスキーマ.テストテーブル WHERE "識別子" = $1 AND "データ" = $2; EXECUTE 準備文2(1, 'あああ'); PREPARE prep3(int, text) AS SELECT * FROM テストスキーマ.テストテーブル WHERE "識別子" = $1 AND "データ" = $2; EXECUTE prep3(1, 'あああ'); DROP TABLE テストスキーマ.テストテーブル; DROP SCHEMA テストスキーマ; SET ROLE フー; SELECT 1; RESET ROLE;
LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,,,[local],[unknown],,0,00000,connection received: host=[local],,,,, LOG: connection received: host=[local] LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],[unknown],2/7,0,00000,connection authorized: user=postgres database=テストデータベース,,,,, LOG: connection authorized: user=postgres database=テストデータベース LOG: AUDIT: SESSION,1,1,MISC,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],psql,2/11,2492,,,EXECUTE,,,"EXECUTE 準備文1(1, 'あああ');",<none> LOG: AUDIT: SESSION,2,1,MISC,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],psql,2/13,0,,,EXECUTE,,,"EXECUTE 準備文2(1, 'あああ');",<none> LOG: AUDIT: SESSION,3,1,MISC,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],psql,2/15,0,,,EXECUTE,,,"EXECUTE prep3(1, 'あああ');",<none> LOG: AUDIT: SESSION,4,1,MISC,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],psql,2/18,0,,,SET,,,SET ROLE フー;,<none> LOG: AUDIT: SESSION,5,1,MISC,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],psql,2/20,0,,,RESET,,,RESET ROLE;,<none> LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,テストデータベース,postgres,[local],psql,,0,00000,disconnection: session time: 0:00:00.041 user=postgres database=テストデータベース host=[local],,,,, LOG: disconnection: session time: 0:00:00.041 user=postgres database=テストデータベース host=[local] LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,,,[local],[unknown],,0,00000,connection received: host=[local],,,,, LOG: connection received: host=[local] LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,テストデータベース,バー,[local],[unknown],2/21,0,00000,connection authorized: user=バー database=テストデータベース,,,,, LOG: connection authorized: user=バー database=テストデータベース LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,テストデータベース,バー,[local],psql,,0,00000,disconnection: session time: 0:00:00.004 user=バー database=テストデータベース host=[local],,,,, LOG: disconnection: session time: 0:00:00.004 user=バー database=テストデータベース host=[local] LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:15 JST,,,[local],[unknown],,0,00000,connection received: host=[local],,,,, LOG: connection received: host=[local] LOG: connection authorized: user=postgres database=postgres LOG: disconnection: session time: 0:00:00.134 user=postgres database=postgres host=[local] LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:16 JST,,,[local],[unknown],,0,00000,connection received: host=[local],,,,, LOG: connection received: host=[local] LOG: connection authorized: user=postgres database=postgres LOG: disconnection: session time: 0:00:00.007 user=postgres database=postgres host=[local] LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:49:16 JST,,,[local],[unknown],,0,00000,connection received: host=[local],,,,, LOG: connection received: host=[local] LOG: connection authorized: user=postgres database=postgres LOG: disconnection: session time: 0:00:00.005 user=postgres database=postgres host=[local]
LOG: AUDIT: SESSION,,,CONNECT,2017-03-07 20:58:33 JST,テストデータベース,postgres,[local],[unknown],2/7,0,00000,connection authorized: user=postgres database=テストデータベース,,,,, LOG: connection authorized: user=postgres database=テストデータベース LOG: AUDIT: SESSION,1,1,WRITE,2017-03-07 20:58:33 JST,テストデータベース,postgres,[local],psql,2/10,0,,,PREPARE,,,"PREPARE 準備文1(int, text) AS INSERT INTO テストスキーマ.テストテーブル VALUES ($1, $2);",<none> LOG: AUDIT: SESSION,2,1,WRITE,2017-03-07 20:58:33 JST,テストデータベース,postgres,[local],psql,2/11,0,,,INSERT,TABLE,"""テストスキーマ"".""テストテーブル""","PREPARE 準備文1(int, text) AS INSERT INTO テストスキーマ.テストテーブル VALUES ($1, $2);",1 あああ
このときに監査ログに出力されたobject_nameを見ると、"""テストスキーマ"".""テストテーブル"""のように展開されている。
"""テストスキーマ"".""テストテーブル"""
しかし、設定ファイルのobject_nameに二重引用符を含めようとすると、設定ファイル誤りと判断されてしまう。
設定ファイル
[rule] class = 'READ,WRITE,MISC' object_name = '"テストスキーマ"."テストテーブル"'
FATAL: invalid format parameter ""テストスキーマ"."テストテーブル"" of field "object_name" in rule section LOG: database system is shut down
Overview
(Below, it is written in Japanese.)
概要
object_name = 'テストスキーマ.テストテーブル'
といったフィルタをルールに記述して、そのテーブルにアクセスするSQL文を実行しても、監査ログに出力されない。設定ファイル
実行したSQL文
監査ログ
object_name = 'テストスキーマ.テストテーブル'
のフィルタをはずすと、監査ログは出力される。このときに監査ログに出力されたobject_nameを見ると、
"""テストスキーマ"".""テストテーブル"""
のように展開されている。しかし、設定ファイルのobject_nameに二重引用符を含めようとすると、設定ファイル誤りと判断されてしまう。
設定ファイル