監査

CREATE AUDIT POLICY pol1
PRIVILEGES SELECT ANY TABLE, CREATE LIBRARY;

CREATE AUDIT POLICY pol2
PRIVILEGES DROP ANY TABLE, DROP ANY CONTEXT, DROP ANY INDEX, DROP ANY LIBRARY;

AUDIT POLICY pol2 BY test;

CREATE AUDIT POLICY pol3
ACTIONS ALL ON test.tab1;

AUDIT POLICY pol3 EXCEPT system;

 


McAfee MySQL Audit Plugin
https://qiita.com/1000k/items/14022083de30ed0c9d65

(5.6)

--プラグインのダウンロード

wget https://bintray.com/mcafee/mysql-audit-plugin/download_file?file_path=audit-plugin-mysql-5.6-1.1.7-805-linux-x86_64.zip

mv download_file?file_path=audit-plugin-mysql-5.6-1.1.7-805-linux-x86_64.zip audit-plugin-mysql-5.6-1.1.7-805-linux-x86_64.zip
unzip audit-plugin-mysql-5.6-1.1.7-805-linux-x86_64.zip

mv audit-plugin-mysql-5.6-1.1.7-805/lib/libaudit_plugin.so /usr/lib64/mysql/plugin/


--Audit プラグインのインストール
INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';

show plugins;
show global status like 'AUDIT_version';

--プラグインを有効化
SHOW VARIABLES LIKE 'audit_%';

vim /etc/my.cnf

[mysqld]
audit_json_file = On
audit_json_log_file=/var/lib/mysql/audit.log
audit_record_cmds=insert,update,delete,select

-------------------------------------------------
商用版の場合
MySQL Enterprise Audit
が使用可能
--MySQL Enterprise Audit(8.0)


mysql -u root -p < /usr/share/mysql-8.0/audit_log_filter_linux_install.sql

SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME LIKE 'audit%';

vim /etc/my.cnf

[mysqld]
audit-log=FORCE_PLUS_PERMANENT


SELECT audit_log_filter_set_filter('log_all', '{ "filter": { "log": true } }');
SELECT audit_log_filter_set_user('%', 'log_all');


-------------------------------------------------


https://www.slideshare.net/ooyamams/postgresql-76893934
https://github.com/pgaudit/pgaudit


(9.6)

--1.PostgreSQLをソースからインストールを行う

→ソースコンパイル参照


--2.pgauditのインストール


yum install -y git

cd /usr/local/src/postgresql-9.6.3/contrib
git clone https://github.com/pgaudit/pgaudit.git
cd pgaudit

git checkout REL9_6_STABLE

chmod -R 777 /usr/local/src/postgresql-9.6.3
chown -R postgres:postgres /usr/local/src/postgresql-9.6.3

su postgres

make -s check

make install

--3.pgauditの設定

vim $PGDATA/postgresql.conf

shared_preload_libraries='pgaudit'

systemctl restart postgresql-9.6


CREATE EXTENSION pgaudit;

mkdir $PGDATA/pg_log
vim $PGDATA/postgresql.conf

log_destination = csvlog
logging_collector = 'on'
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M.log'
log_line_prefix = '[%t][%p][%u][%d] '

 

pgaudit.log = 'write, ddl'
pgaudit.log_relation = on

systemctl restart postgresql-9.6

create table account
(
id int,
name text,
password text,
description text
);

insert into account (id, name, password, description)
values (1, 'user1', 'HASH1', 'blah, blah');

select *
from account;

 

--1.監査オブジェクトの生成
USE [master]
GO

/****** Object: Audit [AuditToFile] Script Date: 2019/01/05 20:45:23 ******/
CREATE SERVER AUDIT [AuditToFile]
TO FILE
( FILEPATH = N'E:\audit\'
,MAXSIZE = 0 MB
,MAX_ROLLOVER_FILES = 2147483647
,RESERVE_DISK_SPACE = OFF
)
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = FAIL_OPERATION
,AUDIT_GUID = '62827c16-e855-4520-9f0a-dae80f186c4c'
)
ALTER SERVER AUDIT [AuditToFile] WITH (STATE = ON)
GO

 

--2.サーバー監査の仕様オブジェクトの生成
--SQL Server のすべてのエディションでサーバー レベルの監査がサポートされます。

USE [master]
GO

CREATE SERVER AUDIT SPECIFICATION [ServerAuditSpecification1]
FOR SERVER AUDIT [AuditToFile]
ADD (FAILED_LOGIN_GROUP)
WITH (STATE = ON)
GO

 

--3.データベース監査の仕様オブジェクトの生成
-- SQL Server 2016 (13.x) SP1 以降のすべてのエディションで、データベース レベルの監査がサポートされます。
-- これより前のデータベース レベルの監査は、Enterprise、Developer、および Evaluation Edition に限定されています。

USE [test]
GO

CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification1]
FOR SERVER AUDIT [AuditToFile]
ADD (SELECT ON OBJECT::[dbo].[tab1] BY [user1])
WITH (STATE = ON)
GO