瀏覽代碼

对接畜牧监控

wwh 1 月之前
父節點
當前提交
06387a409b
共有 1 個文件被更改,包括 40 次插入0 次删除
  1. 40 0
      sql/crypto_phase1.sql

+ 40 - 0
sql/crypto_phase1.sql

@@ -0,0 +1,40 @@
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
+
10
+-- 1. 用户表扩展(证书登录字段一期预留;login_policy 用于登录策略)
11
+ALTER TABLE sys_user
12
+  ADD COLUMN cert_sn            VARCHAR(128)  DEFAULT NULL COMMENT '国密证书序列号' AFTER remark,
13
+  ADD COLUMN cert_subject       VARCHAR(512)  DEFAULT NULL COMMENT '证书主题 DN' AFTER cert_sn,
14
+  ADD COLUMN login_policy       VARCHAR(32)   DEFAULT 'PASSWORD' COMMENT '登录策略:PASSWORD/CERT/SMS_2FA' AFTER cert_subject;
15
+
16
+CREATE INDEX idx_sys_user_cert_sn ON sys_user (cert_sn);
17
+
18
+-- 2. 登录策略配置表
19
+DROP TABLE IF EXISTS sys_login_policy;
20
+CREATE TABLE sys_login_policy (
21
+  policy_id     BIGINT(20)   NOT NULL AUTO_INCREMENT,
22
+  role_key      VARCHAR(100) DEFAULT NULL COMMENT '角色权限字符,空表示默认',
23
+  network_zone  VARCHAR(32)  NOT NULL COMMENT 'INTERNAL/INTERNET',
24
+  policy_type   VARCHAR(32)  NOT NULL COMMENT 'CERT/SMS_2FA/PASSWORD',
25
+  enabled       CHAR(1)      DEFAULT '1',
26
+  remark        VARCHAR(500) DEFAULT NULL,
27
+  create_by     VARCHAR(64)  DEFAULT '',
28
+  create_time   DATETIME     DEFAULT NULL,
29
+  update_by     VARCHAR(64)  DEFAULT '',
30
+  update_time   DATETIME     DEFAULT NULL,
31
+  PRIMARY KEY (policy_id)
32
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='登录策略配置';
33
+
34
+-- 互联网环境:超级管理员强制短信双因子
35
+INSERT INTO sys_login_policy (role_key, network_zone, policy_type, enabled, remark, create_time)
36
+VALUES ('admin', 'INTERNET', 'SMS_2FA', '1', '互联网超级管理员双因子', NOW());
37
+
38
+-- 互联网环境:默认策略(未匹配角色时)
39
+INSERT INTO sys_login_policy (role_key, network_zone, policy_type, enabled, remark, create_time)
40
+VALUES (NULL, 'INTERNET', 'SMS_2FA', '1', '互联网管理端默认双因子', NOW());