mirror of
https://gitee.com/dromara/dax-pay
synced 2026-08-10 14:56:06 +08:00
del 遗留SQL脚本删除
This commit is contained in:
@@ -1,63 +0,0 @@
|
||||
-- IAM 安全配置表
|
||||
CREATE TABLE IF NOT EXISTS pay_platform_security_config (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
config_group VARCHAR(100) NOT NULL,
|
||||
config_key VARCHAR(100) NOT NULL,
|
||||
config_value TEXT,
|
||||
value_type VARCHAR(50) NOT NULL,
|
||||
description VARCHAR(500),
|
||||
enabled BOOLEAN DEFAULT TRUE,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_by BIGINT,
|
||||
UNIQUE (config_group, config_key)
|
||||
);
|
||||
|
||||
-- 添加注释
|
||||
COMMENT ON TABLE pay_platform_security_config IS 'IAM 安全配置表';
|
||||
COMMENT ON COLUMN pay_platform_security_config.id IS '主键ID';
|
||||
COMMENT ON COLUMN pay_platform_security_config.config_group IS '配置分组(如:password_policy, session_management)';
|
||||
COMMENT ON COLUMN pay_platform_security_config.config_key IS '配置项键名';
|
||||
COMMENT ON COLUMN pay_platform_security_config.config_value IS '配置项值(根据 value_type 存储不同格式)';
|
||||
COMMENT ON COLUMN pay_platform_security_config.value_type IS '配置值类型(STRING, INTEGER, BOOLEAN, JSON_OBJECT, JSON_ARRAY)';
|
||||
COMMENT ON COLUMN pay_platform_security_config.description IS '配置描述';
|
||||
COMMENT ON COLUMN pay_platform_security_config.enabled IS '是否启用';
|
||||
COMMENT ON COLUMN pay_platform_security_config.created_at IS '创建时间';
|
||||
COMMENT ON COLUMN pay_platform_security_config.updated_at IS '更新时间';
|
||||
COMMENT ON COLUMN pay_platform_security_config.updated_by IS '更新人ID';
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_group ON pay_platform_security_config(config_group);
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_key ON pay_platform_security_config(config_key);
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_enabled ON pay_platform_security_config(enabled);
|
||||
|
||||
-- IAM 安全配置变更历史表
|
||||
CREATE TABLE IF NOT EXISTS pay_platform_security_config_history (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
config_group VARCHAR(100) NOT NULL,
|
||||
config_key VARCHAR(100) NOT NULL,
|
||||
old_value TEXT,
|
||||
new_value TEXT,
|
||||
modified_by BIGINT,
|
||||
modified_by_username VARCHAR(100),
|
||||
modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
remark VARCHAR(500)
|
||||
);
|
||||
|
||||
-- 添加注释
|
||||
COMMENT ON TABLE pay_platform_security_config_history IS 'IAM 安全配置变更历史表';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.id IS '主键ID';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.config_group IS '配置分组';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.config_key IS '配置项键名';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.old_value IS '旧值';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.new_value IS '新值';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.modified_by IS '修改人ID';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.modified_by_username IS '修改人用户名';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.modified_at IS '修改时间';
|
||||
COMMENT ON COLUMN pay_platform_security_config_history.remark IS '修改原因/备注';
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_history_group ON pay_platform_security_config_history(config_group);
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_history_key ON pay_platform_security_config_history(config_key);
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_history_modified_at ON pay_platform_security_config_history(modified_at DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_security_config_history_modified_by ON pay_platform_security_config_history(modified_by);
|
||||
@@ -1,70 +0,0 @@
|
||||
-- 初始化密码策略配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('password_policy', 'enabled', 'true', 'BOOLEAN', '是否启用密码强度验证', true),
|
||||
('password_policy', 'min_length', '8', 'INTEGER', '密码最小长度', true),
|
||||
('password_policy', 'max_length', '32', 'INTEGER', '密码最大长度', true),
|
||||
('password_policy', 'require_uppercase', 'true', 'BOOLEAN', '是否要求包含大写字母', true),
|
||||
('password_policy', 'require_lowercase', 'true', 'BOOLEAN', '是否要求包含小写字母', true),
|
||||
('password_policy', 'require_digit', 'true', 'BOOLEAN', '是否要求包含数字', true),
|
||||
('password_policy', 'require_special_char', 'true', 'BOOLEAN', '是否要求包含特殊字符', true),
|
||||
('password_policy', 'special_chars', '!@#$%^&*()_+-=[]{}|;:,.<>?', 'STRING', '特殊字符集合', true),
|
||||
('password_policy', 'rotation_days', '90', 'INTEGER', '密码轮换周期(天),0或负数表示禁用', true),
|
||||
('password_policy', 'history_count', '5', 'INTEGER', '密码历史记录数量,0表示禁用', true);
|
||||
|
||||
-- 初始化会话管理配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('session_management', 'enabled', 'true', 'BOOLEAN', '是否启用会话管理', true),
|
||||
('session_management', 'max_online_hours', '8', 'INTEGER', '最大在线时长(小时),0或负数表示无限制', true),
|
||||
('session_management', 'max_concurrent_sessions', '3', 'INTEGER', '最大并发会话数,0或负数表示无限制', true),
|
||||
('session_management', 'concurrent_strategy', 'REJECT_NEW', 'STRING', '并发会话策略:REJECT_NEW-拒绝新登录,KICK_OLDEST-踢出最早会话', true),
|
||||
('session_management', 'auto_cleanup', 'true', 'BOOLEAN', '会话超时后是否自动清理', true);
|
||||
|
||||
-- 初始化登录安全配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('login_security', 'lockout_enabled', 'true', 'BOOLEAN', '是否启用登录失败锁定', true),
|
||||
('login_security', 'max_failed_attempts', '5', 'INTEGER', '最大登录失败次数', true),
|
||||
('login_security', 'lockout_duration_minutes', '30', 'INTEGER', '账户锁定持续时间(分钟)', true),
|
||||
('login_security', 'failure_reset_minutes', '15', 'INTEGER', '失败计数重置时间(分钟),超过此时间后重置失败计数', true);
|
||||
|
||||
-- 初始化 IP 访问控制配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('ip_access_control', 'enabled', 'false', 'BOOLEAN', '是否启用 IP 白名单', true),
|
||||
('ip_access_control', 'whitelist', '[]', 'JSON_ARRAY', 'IP 白名单列表,支持单个IP和CIDR格式', true),
|
||||
('ip_access_control', 'blacklist_enabled', 'false', 'BOOLEAN', '是否启用 IP 黑名单', true),
|
||||
('ip_access_control', 'blacklist', '[]', 'JSON_ARRAY', 'IP 黑名单列表', true),
|
||||
('ip_access_control', 'mode', 'WHITELIST_ONLY', 'STRING', 'IP 限制模式:WHITELIST_ONLY-仅白名单,BLACKLIST_ONLY-仅黑名单,WHITELIST_PRIORITY-白名单优先', true);
|
||||
|
||||
-- 初始化双因素认证配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('two_factor_auth', 'enabled', 'false', 'BOOLEAN', '是否启用双因素认证', true),
|
||||
('two_factor_auth', 'mandatory', 'false', 'BOOLEAN', '是否强制所有用户启用 2FA', true),
|
||||
('two_factor_auth', 'algorithm', 'HmacSHA1', 'STRING', 'TOTP 算法类型', true),
|
||||
('two_factor_auth', 'time_step', '30', 'INTEGER', 'TOTP 时间步长(秒)', true),
|
||||
('two_factor_auth', 'code_length', '6', 'INTEGER', 'TOTP 验证码长度', true),
|
||||
('two_factor_auth', 'time_window_offset', '1', 'INTEGER', '允许的时间窗口偏移(前后各几个时间步)', true),
|
||||
('two_factor_auth', 'issuer', 'DaxPay Platform', 'STRING', '发行者名称(显示在认证器应用中)', true);
|
||||
|
||||
-- 初始化审计日志配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('audit_log', 'enabled', 'true', 'BOOLEAN', '是否启用审计日志', true),
|
||||
('audit_log', 'log_login_success', 'true', 'BOOLEAN', '是否记录登录成功事件', true),
|
||||
('audit_log', 'log_login_failure', 'true', 'BOOLEAN', '是否记录登录失败事件', true),
|
||||
('audit_log', 'log_password_change', 'true', 'BOOLEAN', '是否记录密码修改事件', true),
|
||||
('audit_log', 'log_account_lockout', 'true', 'BOOLEAN', '是否记录账户锁定/解锁事件', true),
|
||||
('audit_log', 'log_config_change', 'true', 'BOOLEAN', '是否记录配置变更事件', true),
|
||||
('audit_log', 'retention_days', '90', 'INTEGER', '日志保留天数,0表示永久保留', true),
|
||||
('audit_log', 'storage', 'DATABASE', 'STRING', '日志存储方式:DATABASE-数据库存储,FILE-文件存储,BOTH-同时存储', true);
|
||||
|
||||
-- 初始化异常登录检测配置
|
||||
INSERT INTO pay_platform_security_config (config_group, config_key, config_value, value_type, description, enabled) VALUES
|
||||
('anomaly_detection', 'enabled', 'false', 'BOOLEAN', '是否启用异常登录检测', true),
|
||||
('anomaly_detection', 'sensitivity_level', 'MEDIUM', 'STRING', '检测敏感度级别:LOW-低,MEDIUM-中,HIGH-高', true),
|
||||
('anomaly_detection', 'detect_anomalous_ip', 'true', 'BOOLEAN', '是否检测异常 IP', true),
|
||||
('anomaly_detection', 'detect_anomalous_time', 'true', 'BOOLEAN', '是否检测异常登录时间', true),
|
||||
('anomaly_detection', 'detect_anomalous_device', 'true', 'BOOLEAN', '是否检测异常设备', true),
|
||||
('anomaly_detection', 'ip_change_threshold', '80', 'INTEGER', 'IP 地址变化阈值(百分比),超过此值视为异常', true),
|
||||
('anomaly_detection', 'time_deviation_threshold', '6', 'INTEGER', '登录时间偏离阈值(小时),超过此值视为异常', true),
|
||||
('anomaly_detection', 'response_strategy', 'LOG_ONLY', 'STRING', '异常行为响应策略:LOG_ONLY-仅记录日志,LOG_AND_NOTIFY-记录并通知,LOG_NOTIFY_AND_CHALLENGE-记录通知并要求额外验证,LOG_NOTIFY_AND_BLOCK-记录通知并阻止登录', true),
|
||||
('anomaly_detection', 'send_notification', 'false', 'BOOLEAN', '是否发送异常通知', true),
|
||||
('anomaly_detection', 'notification_emails', '[]', 'JSON_ARRAY', '通知接收人邮箱列表', true),
|
||||
('anomaly_detection', 'baseline_retention_days', '30', 'INTEGER', '用户行为基线数据保留天数', true);
|
||||
@@ -1,27 +0,0 @@
|
||||
-- 用户表
|
||||
CREATE TABLE IF NOT EXISTS iam_user (
|
||||
id BIGINT NOT NULL,
|
||||
creator BIGINT,
|
||||
create_time TIMESTAMP,
|
||||
last_modifier BIGINT,
|
||||
last_modified_time TIMESTAMP,
|
||||
version INT4 DEFAULT 0,
|
||||
deleted BOOLEAN DEFAULT FALSE,
|
||||
tenant_id BIGINT NOT NULL,
|
||||
username VARCHAR(100) NOT NULL,
|
||||
password VARCHAR(200) NOT NULL,
|
||||
role_id BIGINT,
|
||||
status VARCHAR(20) DEFAULT 'ACTIVE',
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE iam_user IS '用户表';
|
||||
COMMENT ON COLUMN iam_user.tenant_id IS '租户ID';
|
||||
COMMENT ON COLUMN iam_user.username IS '用户名';
|
||||
COMMENT ON COLUMN iam_user.password IS '密码';
|
||||
COMMENT ON COLUMN iam_user.role_id IS '角色ID(单角色模式)';
|
||||
COMMENT ON COLUMN iam_user.status IS '状态';
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uk_user_tenant_username ON iam_user(tenant_id, username) WHERE deleted = FALSE;
|
||||
CREATE INDEX IF NOT EXISTS idx_user_tenant_id ON iam_user(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_user_role_id ON iam_user(role_id);
|
||||
@@ -1,19 +0,0 @@
|
||||
-- 用户密码历史表
|
||||
CREATE TABLE IF NOT EXISTS iam_user_password_history (
|
||||
id BIGINT NOT NULL,
|
||||
user_id BIGINT NOT NULL,
|
||||
password_hash VARCHAR(200) NOT NULL,
|
||||
creator BIGINT,
|
||||
create_time TIMESTAMP,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE iam_user_password_history IS '用户密码历史表';
|
||||
COMMENT ON COLUMN iam_user_password_history.id IS '主键';
|
||||
COMMENT ON COLUMN iam_user_password_history.user_id IS '用户ID';
|
||||
COMMENT ON COLUMN iam_user_password_history.password_hash IS '密码哈希值';
|
||||
COMMENT ON COLUMN iam_user_password_history.creator IS '创建者ID';
|
||||
COMMENT ON COLUMN iam_user_password_history.create_time IS '创建时间';
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_password_history_user_id ON iam_user_password_history(user_id);
|
||||
COMMENT ON INDEX idx_password_history_user_id IS '用户ID索引';
|
||||
@@ -1,5 +0,0 @@
|
||||
-- 插入系统内置角色
|
||||
INSERT INTO iam_role (id, code, name_cn, name_en, client_code, internal, remark, creator, create_time, last_modifier, last_modified_time, version, deleted)
|
||||
VALUES
|
||||
(1928374650192837466, 'merchant_admin', '商户管理员', 'Merchant Admin', 'merchant', true, '系统内置商户管理员角色', 1, NOW(), 1, NOW(), 0, false),
|
||||
(1928374650192837467, 'isv_admin', '服务商管理员', 'ISV Admin', 'isv', true, '系统内置服务商管理员角色', 1, NOW(), 1, NOW(), 0, false);
|
||||
@@ -1,5 +0,0 @@
|
||||
-- 添加上次登录失败时间字段
|
||||
ALTER TABLE iam_user_password_security
|
||||
ADD COLUMN last_failure_time TIMESTAMP;
|
||||
|
||||
COMMENT ON COLUMN iam_user_password_security.last_failure_time IS '上次登录失败时间';
|
||||
Reference in New Issue
Block a user