From 52ddf9384aa88989538cc8f0925c4664c266c5ee Mon Sep 17 00:00:00 2001 From: bingshuo <565183519@qq.com> Date: Thu, 21 May 2026 17:43:42 +0800 Subject: [PATCH] feat: add audit_log_user table [D109] Layer 3 user operation audit --- persona-brain-db/schema/13-audit-log-user.sql | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 persona-brain-db/schema/13-audit-log-user.sql diff --git a/persona-brain-db/schema/13-audit-log-user.sql b/persona-brain-db/schema/13-audit-log-user.sql new file mode 100644 index 0000000..9e52944 --- /dev/null +++ b/persona-brain-db/schema/13-audit-log-user.sql @@ -0,0 +1,22 @@ +-- ============================================================ +-- 表13:audit_log_user(审计日志 · 用户操作 · append-only) +-- 用途:普通用户级别的操作审计 +-- ============================================================ + +CREATE TABLE IF NOT EXISTS audit_log_user ( + log_id INTEGER PRIMARY KEY AUTOINCREMENT, + operation VARCHAR(64) NOT NULL, + actor_id VARCHAR(64) NOT NULL, -- 用户ID + target_type VARCHAR(32), + target_id VARCHAR(64), + details TEXT, -- JSON object + ip_address VARCHAR(45), + user_agent VARCHAR(256), + result VARCHAR(16) NOT NULL + CHECK (result IN ('success', 'failure', 'pending')), + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE INDEX IF NOT EXISTS idx_alu_actor ON audit_log_user(actor_id); +CREATE INDEX IF NOT EXISTS idx_alu_operation ON audit_log_user(operation); +CREATE INDEX IF NOT EXISTS idx_alu_timestamp ON audit_log_user(timestamp);