20260203_create_login_attempts_his.sql 1.3 KB

123456789101112131415161718192021
  1. -- 创建登录尝试历史记录表
  2. -- 用于记录 login_attempts 表的变更历史,支持审计和追溯
  3. CREATE TABLE IF NOT EXISTS `login_attempts_his` (
  4. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  5. `username` VARCHAR(100) NOT NULL COMMENT '用户名',
  6. `success` TINYINT(1) DEFAULT 0 COMMENT '是否成功: 1-成功, 0-失败',
  7. `machine_code` VARCHAR(255) DEFAULT NULL COMMENT '机器码',
  8. `ip_address` VARCHAR(45) DEFAULT NULL COMMENT 'IP地址',
  9. `user_agent` VARCHAR(500) DEFAULT NULL COMMENT '用户代理',
  10. `failure_reason` VARCHAR(255) DEFAULT NULL COMMENT '失败原因',
  11. `attempted_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '尝试时间',
  12. `action_type` VARCHAR(20) NOT NULL COMMENT '操作类型: INSERT/UPDATE/DELETE',
  13. `changed_fields` TEXT DEFAULT NULL COMMENT '变更字段(JSON格式)',
  14. `operator` VARCHAR(100) DEFAULT NULL COMMENT '操作者: system/user_id',
  15. `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
  16. PRIMARY KEY (`id`),
  17. KEY `idx_username` (`username`),
  18. KEY `idx_attempted_at` (`attempted_at`),
  19. KEY `idx_action_type` (`action_type`)
  20. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='登录尝试历史记录表';