yunzer_go/server/sql/create_audit_log_tables.sql

33 lines
2.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 通用操作日志表(记录所有用户在所有模块的操作)
CREATE TABLE `sys_operation_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`tenant_id` int(11) NOT NULL DEFAULT 0 COMMENT '租户ID0表示平台操作>0表示租户操作',
`user_id` int(11) NOT NULL COMMENT '操作用户ID',
`username` varchar(50) NOT NULL COMMENT '操作用户名',
`module` varchar(100) NOT NULL COMMENT '操作模块user/tenant/dict/role等',
`resource_type` varchar(50) NOT NULL COMMENT '资源类型如User/Tenant/Dict等',
`resource_id` int(11) NULL COMMENT '资源ID如被操作的用户ID、租户ID等',
`operation` varchar(20) NOT NULL COMMENT '操作类型CREATE/UPDATE/DELETE/LOGIN/LOGOUT/VIEW等',
`description` varchar(500) NULL COMMENT '操作描述',
`old_value` longtext NULL COMMENT '修改前的值JSON格式用于UPDATE操作',
`new_value` longtext NULL COMMENT '修改后的值JSON格式用于UPDATE操作',
`ip_address` varchar(50) NULL COMMENT 'IP地址',
`user_agent` varchar(500) NULL COMMENT '用户代理信息',
`request_method` varchar(10) NULL COMMENT '请求方法GET/POST/PUT/DELETE等',
`request_url` varchar(500) NULL COMMENT '请求URL',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1-成功0-失败',
`error_message` text NULL COMMENT '错误信息',
`duration` int(11) NULL COMMENT '执行时长(毫秒)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
PRIMARY KEY (`id`),
KEY `idx_tenant_id` (`tenant_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_module` (`module`),
KEY `idx_resource_type` (`resource_type`),
KEY `idx_resource_id` (`resource_id`),
KEY `idx_operation` (`operation`),
KEY `idx_create_time` (`create_time`),
KEY `idx_tenant_user_time` (`tenant_id`, `user_id`, `create_time`),
KEY `idx_tenant_module_time` (`tenant_id`, `module`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统操作日志表';