postgresql 中创建事件触发器,追踪记录新建、替换、删除表格等信息

本文介绍了如何在PostgreSQL中创建一个事件触发器,用于追踪并记录新建、替换、删除表格等操作的相关信息。通过创建特定的审计表格和触发器函数,能够详细记录触发时间、用户、事务、操作类型以及执行的DDL语句。

先创建一个表格用来记录跟踪信息:

create table "temp".create_drop_alter_ddl_audit
(
  c_key    bigserial primary key,--行号id
  c_time   timestamp,    -- 触发时间
  c_user   varchar(64),  -- 触发用户
  c_txn    varchar(16),  -- current transaction
  c_tag    varchar(24),  -- 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
  c_oid    integer,      -- For future use - TG_OBJECTID
  c_name   varchar(64),  -- For future use - TG_OBJECTNAME
  c_schema varchar(64),  -- 所属模式名称
  c_ddlqry  text         -- 触发语句
)

触发器函数编写如下:

CREATE OR REPLACE FUNCTION create_drop_alter_ddl()
RETURNS event_trigger
LANGUAGE plpgsql
SECURITY DEFINER
  AS $$
  declare _qry text;
BEGIN
  if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值