20260202_create_hmac_keys.sql 1.3 KB

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