lightdb中审计日志的设置以及lightdb-em中审计日志的使用

1,什么是审计日志?

LightDB 审计扩展(ltaudit)通过标准的 LightDB 日志记录工具提供详细的会话和/或对象审计日志记录。
Ltaudit 的目标是为 LightDB 用户提供生成符合政府、财务或 ISO 认证要求的审计日志的能力。
审计是对个人或组织帐目的正式检查,通常由独立机构进行。由 ltaudit 收集的信息正确地称为审计跟踪或审计日志。本文档使用审计日志这一术语。

2,如何设置配置审计日志?

1,设置只能由超级用户修改。允许普通用户更改他们的设置将会破坏审计日志的要点。
2,可以在全局(在 lightdb.conf 中或使用 ALTER SYSTEM… SET)、数据库级别(使用 ALTER DATABASE… SET)或角色级别(使用 ALTER ROLE… SET)指定设置。请注意,设置不是通过正常的角色继承来继承的,SETROLE 不会更改用户的 ltaudit 设置。这是角色系统的一个局限性,而不是 Ltaudit 所固有的。

2.1,审计日志参数

指定会话审核日志将记录哪些类别的语句。可能的值是:
READ:当源是关系或查询时,执行 SELECT 和 COPY 操作。
WRITE:当目标是一个关系时,插入、更新、删除、截断和复制。
FUNCTION:函数调用和 DO 块。
ROLE:与角色和特权相关的语句: GRANT、 REVOKE、 CREATE/ALTER/DROP。
DDL:ROLE 类中未包含的所有 DDL。
MISC:杂项指令,例如丢弃、取出、检查点、真空、设定。
MISC_SET:其他 SET 命令,例如 SETROLE。
ALL:包括以上所有。
示例:
SQL:

set ltaudit.log = 'read, ddl';

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

insert into account (id, name, pd, description)
             values (1, 'user1', 'wuku', 'blah, blah');

select *
    from account;

Log Output 日志输出:

AUDIT: SESSION,1,1,DDL,CREATE TABLE,TABLE,public.account,create table account
(
    id int,
    name text,
    pdtext,
    description text
);,<not logged>
AUDIT: SESSION,2,1,READ,SELECT,,,select *
    from account,,<not logged>

对象审核日志记录影响特定关系的日志语句。只支持 SELECT、 INSERT、 UPDATE 和 DELETE 命令。对象审计日志记录中不包括 TRUNCATE。
对象级审计日志通过角色系统实现。Role 设置定义了将用于审计日志记录的角色。当审计角色对所执行的命令具有权限或从另一个角色继承权限时,将记录审计关系(TABLE、 VIEW 等)。这允许您有效地拥有多个审计角色,即使在任何上下文中只有一个主角色。
示例,将 ltaudit.role 设置为 auditor 并授予 Account 表上的 SELECT 和 DELETE 特权。帐户表上的任何 SELECT 或 DELETE 语句现在都将被记录:

set ltaudit.role = 'auditor';

grant select, delete
   on public.account
   to auditor;

示例

set ltaudit.role = 'auditor';

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

grant select (pd)
   on public.account
   to auditor;

select id, name
  from account;

select pd
  from account;

grant update (name, pd)
   on public.account
   to auditor;

update account
   set description = 'yada, yada';

update account
   set pd= 'kuwu';

create table account_role_map
(
    account_id int,
    role_id int
);

grant select
   on public.account_role_map
   to auditor;

select account.pd,
       account_role_map.role_id
  from account
       inner join account_role_map
            on account.id = account_role_map.account_id

Log Output 日志输出:

AUDIT: OBJECT,1,1,READ,SELECT,TABLE,public.account,select pd
  from account,<not logged>
AUDIT: OBJECT,2,1,WRITE,UPDATE,TABLE,public.account,update account
   set pd= 'kuwu',<not logged>
AUDIT: OBJECT,3,1,READ,SELECT,TABLE,public.account,select account.pd,
       account_role_map.role_id
  from account
       inner join account_role_map
            on account.id = account_role_map.account_id,<not logged>
AUDIT: OBJECT,3,1,READ,SELECT,TABLE,public.account_role_map,select account.pd,
       account_role_map.role_id
  from account
       inner join account_role_map
            on account.id = account_role_map.account_id,<not logged>
3,在lightdb数据库中实际操作:
3.1,配置lightdb.conf文件

在这里插入图片描述

3.2重启数据库,让配置生效,现在打印的日志全部是审计日志,因为在配置文件中配置后是全局生效

在这里插入图片描述

3.3在em中查看记录的审计日志,路径在 日志检索->SQL审计日志

在这里插入图片描述
输入关键字with后查询到相关的审计日志
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值