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