西藏巴青项目

crypto_phase1.sql 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. -- 密码改造一期:互联网管理端身份鉴别(短信双因子 + 登录策略)
  2. -- 执行前请备份 sys_user
  3. --
  4. -- 说明:
  5. -- 1. sys_user 扩展 login_policy 等字段,支持按用户覆盖登录方式
  6. -- 2. sys_login_policy 按「网络区域 + 角色」配置最低鉴别要求(如互联网 admin → SMS_2FA)
  7. -- 3. 应用配置 login.network-zone=INTERNET 且 internet-sms.enabled=true 后生效
  8. -- 4. 管理员账号须填写 phonenumber,否则无法接收登录短信
  9. -- 1. 用户表扩展(证书登录字段一期预留;login_policy 用于登录策略)
  10. ALTER TABLE sys_user
  11. ADD COLUMN cert_sn VARCHAR(128) DEFAULT NULL COMMENT '国密证书序列号' AFTER remark,
  12. ADD COLUMN cert_subject VARCHAR(512) DEFAULT NULL COMMENT '证书主题 DN' AFTER cert_sn,
  13. ADD COLUMN login_policy VARCHAR(32) DEFAULT 'PASSWORD' COMMENT '登录策略:PASSWORD/CERT/SMS_2FA' AFTER cert_subject;
  14. CREATE INDEX idx_sys_user_cert_sn ON sys_user (cert_sn);
  15. -- 2. 登录策略配置表
  16. DROP TABLE IF EXISTS sys_login_policy;
  17. CREATE TABLE sys_login_policy (
  18. policy_id BIGINT(20) NOT NULL AUTO_INCREMENT,
  19. role_key VARCHAR(100) DEFAULT NULL COMMENT '角色权限字符,空表示默认',
  20. network_zone VARCHAR(32) NOT NULL COMMENT 'INTERNAL/INTERNET',
  21. policy_type VARCHAR(32) NOT NULL COMMENT 'CERT/SMS_2FA/PASSWORD',
  22. enabled CHAR(1) DEFAULT '1',
  23. remark VARCHAR(500) DEFAULT NULL,
  24. create_by VARCHAR(64) DEFAULT '',
  25. create_time DATETIME DEFAULT NULL,
  26. update_by VARCHAR(64) DEFAULT '',
  27. update_time DATETIME DEFAULT NULL,
  28. PRIMARY KEY (policy_id)
  29. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='登录策略配置';
  30. -- 互联网环境:超级管理员强制短信双因子
  31. INSERT INTO sys_login_policy (role_key, network_zone, policy_type, enabled, remark, create_time)
  32. VALUES ('admin', 'INTERNET', 'SMS_2FA', '1', '互联网超级管理员双因子', NOW());
  33. -- 互联网环境:默认策略(未匹配角色时)
  34. INSERT INTO sys_login_policy (role_key, network_zone, policy_type, enabled, remark, create_time)
  35. VALUES (NULL, 'INTERNET', 'SMS_2FA', '1', '互联网管理端默认双因子', NOW());