-- 创建 HMAC 密钥表 -- 用于存储客户端的动态 HMAC 签名密钥 -- 支持用户/机器码绑定、密钥过期管理、密钥轮换 CREATE TABLE IF NOT EXISTS hmac_keys ( id INT AUTO_INCREMENT PRIMARY KEY, -- 基本信息 user_id INT NOT NULL COMMENT '用户ID', username VARCHAR(64) NOT NULL COMMENT '用户名', machine_code VARCHAR(128) NOT NULL COMMENT '机器码', -- 密钥信息 hmac_key TEXT NOT NULL COMMENT 'HMAC密钥', key_version INT DEFAULT 1 COMMENT '密钥版本', -- 过期时间 expires_at DATETIME NOT NULL COMMENT '过期时间', -- 状态 is_active TINYINT(1) DEFAULT 1 COMMENT '是否活跃: 1=活跃, 0=停用', -- 时间戳 created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 索引 INDEX idx_hmac_key_lookup (user_id, machine_code, is_active), INDEX idx_hmac_key_expiry (expires_at, is_active), INDEX idx_hmac_key_user (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='HMAC密钥表'; -- 添加外键约束(如果user表存在) -- ALTER TABLE hmac_keys -- ADD CONSTRAINT fk_hmac_key_user -- FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;