72 lines
4.3 KiB
MySQL
72 lines
4.3 KiB
MySQL
|
|
-- =============================================================
|
|||
|
|
-- 升级脚本:MeshSafe 文件安全检测对接
|
|||
|
|
-- 日期:2026-11-01
|
|||
|
|
-- 说明:新增 x_file_security 表(按文件编码维度记录安全检测结果)。
|
|||
|
|
-- 文件上传/传输接收解包后自动提交 MeshSafe 检测,
|
|||
|
|
-- 检测结论(通过/不通过)回写本表;同一文件允许多条检测
|
|||
|
|
-- 记录(人工复核、重新检测均新增记录),业务取最新一条生效。
|
|||
|
|
-- 检测不通过的文件禁止分享与跨网传输(下载预览不受限)。
|
|||
|
|
-- 执行方式:MySQL/达梦(DM8 MySQL兼容模式)执行第 1 节;
|
|||
|
|
-- PostgreSQL 执行第 2 节。
|
|||
|
|
-- =============================================================
|
|||
|
|
|
|||
|
|
-- -------------------------------------------------------------
|
|||
|
|
-- 1. MySQL / 达梦 DM8
|
|||
|
|
-- -------------------------------------------------------------
|
|||
|
|
CREATE TABLE `x_file_security` (
|
|||
|
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
|||
|
|
`file_code` varchar(32) DEFAULT NULL COMMENT '文件编码',
|
|||
|
|
`task_id` varchar(64) DEFAULT NULL COMMENT 'MeshSafe检测任务ID',
|
|||
|
|
`scan_status` varchar(2) DEFAULT NULL COMMENT '检测状态:1检测中/2通过/3不通过/4检测失败',
|
|||
|
|
`action` varchar(32) DEFAULT NULL COMMENT 'MeshSafe处置动作:pass/manual_review/reject',
|
|||
|
|
`reason` varchar(1024) DEFAULT NULL COMMENT '检测结论说明',
|
|||
|
|
`result_json` text DEFAULT NULL COMMENT '检测完整结果JSON',
|
|||
|
|
`review_comment` varchar(512) DEFAULT NULL COMMENT '人工复核说明(人工改判时有值)',
|
|||
|
|
`deleted` bit(1) DEFAULT b'0' COMMENT '是否删除',
|
|||
|
|
`create_by` bigint(20) DEFAULT NULL COMMENT '创建人',
|
|||
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`update_by` bigint(20) DEFAULT NULL COMMENT '修改人',
|
|||
|
|
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|||
|
|
`proxy_by` bigint(20) DEFAULT NULL COMMENT '代理人',
|
|||
|
|
PRIMARY KEY (`id`) USING BTREE,
|
|||
|
|
KEY `idx_file_security_file_code` (`file_code`) USING BTREE,
|
|||
|
|
KEY `idx_file_security_scan_status` (`scan_status`) USING BTREE
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件安全检测记录';
|
|||
|
|
|
|||
|
|
-- -------------------------------------------------------------
|
|||
|
|
-- 2. PostgreSQL
|
|||
|
|
-- -------------------------------------------------------------
|
|||
|
|
CREATE TABLE x_file_security (
|
|||
|
|
id BIGSERIAL PRIMARY KEY,
|
|||
|
|
file_code VARCHAR(32) DEFAULT NULL,
|
|||
|
|
task_id VARCHAR(64) DEFAULT NULL,
|
|||
|
|
scan_status VARCHAR(2) DEFAULT NULL,
|
|||
|
|
action VARCHAR(32) DEFAULT NULL,
|
|||
|
|
reason VARCHAR(1024) DEFAULT NULL,
|
|||
|
|
result_json TEXT DEFAULT NULL,
|
|||
|
|
review_comment VARCHAR(512) DEFAULT NULL,
|
|||
|
|
deleted BOOLEAN DEFAULT FALSE,
|
|||
|
|
create_by BIGINT DEFAULT NULL,
|
|||
|
|
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|||
|
|
update_by BIGINT DEFAULT NULL,
|
|||
|
|
update_time TIMESTAMP DEFAULT NULL,
|
|||
|
|
proxy_by BIGINT DEFAULT NULL
|
|||
|
|
);
|
|||
|
|
CREATE INDEX idx_file_security_file_code ON x_file_security(file_code);
|
|||
|
|
CREATE INDEX idx_file_security_scan_status ON x_file_security(scan_status);
|
|||
|
|
COMMENT ON TABLE x_file_security IS '文件安全检测记录';
|
|||
|
|
COMMENT ON COLUMN x_file_security.id IS '主键ID';
|
|||
|
|
COMMENT ON COLUMN x_file_security.file_code IS '文件编码';
|
|||
|
|
COMMENT ON COLUMN x_file_security.task_id IS 'MeshSafe检测任务ID';
|
|||
|
|
COMMENT ON COLUMN x_file_security.scan_status IS '检测状态:1检测中/2通过/3不通过/4检测失败';
|
|||
|
|
COMMENT ON COLUMN x_file_security.action IS 'MeshSafe处置动作:pass/manual_review/reject';
|
|||
|
|
COMMENT ON COLUMN x_file_security.reason IS '检测结论说明';
|
|||
|
|
COMMENT ON COLUMN x_file_security.result_json IS '检测完整结果JSON';
|
|||
|
|
COMMENT ON COLUMN x_file_security.review_comment IS '人工复核说明(人工改判时有值)';
|
|||
|
|
COMMENT ON COLUMN x_file_security.deleted IS '是否删除';
|
|||
|
|
COMMENT ON COLUMN x_file_security.create_by IS '创建人';
|
|||
|
|
COMMENT ON COLUMN x_file_security.create_time IS '创建时间';
|
|||
|
|
COMMENT ON COLUMN x_file_security.update_by IS '修改人';
|
|||
|
|
COMMENT ON COLUMN x_file_security.update_time IS '修改时间';
|
|||
|
|
COMMENT ON COLUMN x_file_security.proxy_by IS '代理人';
|