From e6fea0bef6937eb078f642abc14e6336902cc5ab Mon Sep 17 00:00:00 2001 From: waner Date: Wed, 29 Apr 2026 17:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E8=AF=81=E4=B9=A6sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/migration/V1__tms_schema_full.sql | 77 +++++++++++++++++++ .../migration/V7__add_cert_module_tables.sql | 16 ++-- 2 files changed, 87 insertions(+), 6 deletions(-) diff --git a/src/main/resources/db/migration/V1__tms_schema_full.sql b/src/main/resources/db/migration/V1__tms_schema_full.sql index f3fe8b6..763e68a 100644 --- a/src/main/resources/db/migration/V1__tms_schema_full.sql +++ b/src/main/resources/db/migration/V1__tms_schema_full.sql @@ -530,3 +530,80 @@ CREATE TABLE IF NOT EXISTS tms_access_whitelist ( create_time DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), update_time DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) ); + + +-- ----------------------------------------------------------------------------- +-- Cert module tables +-- ----------------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS t_key_entity ( + id BIGINT PRIMARY KEY, + org_code VARCHAR(64) NOT NULL COMMENT 'organization code', + org_name VARCHAR(255) NOT NULL COMMENT 'organization name', + algo_type VARCHAR(16) NOT NULL COMMENT 'SM2 / RSA', + key_len INT NOT NULL COMMENT 'SM2 fixed 256 in V1', + key_idx INT NOT NULL COMMENT 'card key index, allowed range [2..8]', + backup_data VARCHAR(500) NOT NULL COMMENT 'SDFE_BackupUserKey output', + public_key VARCHAR(500) NOT NULL COMMENT 'public key, Base64/PEM', + p10_data VARCHAR(2000) NULL COMMENT 'PKCS#10 PEM content', + subject_dn VARCHAR(500) NULL COMMENT 'DN used when generating P10', + cert_mode VARCHAR(16) NULL COMMENT 'SINGLE / DOUBLE', + status VARCHAR(32) NOT NULL COMMENT 'CREATED / P10_GENERATED / CERT_IMPORTED', + allow_ips VARCHAR(500) NULL COMMENT 'allowed source IP list', + sign_data VARCHAR(512) NULL COMMENT 'reserved, not used in V1', + create_by VARCHAR(64) NULL, + create_time DATETIME(3) NOT NULL, + update_time DATETIME(3) NOT NULL, + UNIQUE KEY uk_t_key_entity_key_idx (key_idx), + KEY idx_t_key_entity_org_code (org_code), + KEY idx_t_key_entity_algo (algo_type), + KEY idx_t_key_entity_status (status), + KEY idx_t_key_entity_create_time (create_time) +); + +CREATE TABLE IF NOT EXISTS t_certificate ( + id BIGINT PRIMARY KEY, + entity_id BIGINT NULL COMMENT 'required when cert_type=ENTITY', + cert_type VARCHAR(16) NOT NULL COMMENT 'ENTITY / USER', + subject_dn VARCHAR(500) NOT NULL, + issuer_dn VARCHAR(1024) NOT NULL, + serial_number VARCHAR(128) NOT NULL, + algo_type VARCHAR(16) NOT NULL COMMENT 'SM2 in V1', + fingerprint VARCHAR(128) NOT NULL COMMENT 'SHA-256 fingerprint', + cert_data VARCHAR(2000) NOT NULL COMMENT 'certificate PEM content', + valid_from DATETIME(3) NOT NULL, + valid_to DATETIME(3) NOT NULL, + import_time DATETIME(3) NOT NULL, + sign_data VARCHAR(512) NULL COMMENT 'reserved, not used in V1', + create_by VARCHAR(64) NULL, + create_time DATETIME(3) NOT NULL, + update_time DATETIME(3) NOT NULL, + UNIQUE KEY uk_t_certificate_fingerprint (fingerprint), + KEY idx_t_certificate_entity_id (entity_id), + KEY idx_t_certificate_cert_type (cert_type), + KEY idx_t_certificate_issuer_dn (issuer_dn(512)), + KEY idx_t_certificate_valid_to (valid_to), + KEY idx_t_certificate_import_time (import_time) +); + +CREATE TABLE IF NOT EXISTS t_trusted_cert ( + id BIGINT PRIMARY KEY, + alias VARCHAR(128) NOT NULL, + subject_dn VARCHAR(1024) NOT NULL, + issuer_dn VARCHAR(1024) NOT NULL, + serial_number VARCHAR(128) NOT NULL, + algo_type VARCHAR(16) NOT NULL COMMENT 'SM2 in V1', + fingerprint VARCHAR(128) NOT NULL COMMENT 'SHA-256 fingerprint', + cert_data VARCHAR(2000) NOT NULL COMMENT 'certificate PEM content', + ca_level TINYINT NOT NULL COMMENT '0:Root, 1:Intermediate', + valid_from DATETIME(3) NOT NULL, + valid_to DATETIME(3) NOT NULL, + import_time DATETIME(3) NOT NULL, + sign_data VARCHAR(512) NULL COMMENT 'reserved, not used in V1', + create_by VARCHAR(64) NULL, + create_time DATETIME(3) NOT NULL, + update_time DATETIME(3) NOT NULL, + UNIQUE KEY uk_t_trusted_cert_fingerprint (fingerprint), + KEY idx_t_trusted_cert_subject_dn (subject_dn(512)), + KEY idx_t_trusted_cert_issuer_dn (issuer_dn(512)), + KEY idx_t_trusted_cert_valid_to (valid_to) +); diff --git a/src/main/resources/db/migration/V7__add_cert_module_tables.sql b/src/main/resources/db/migration/V7__add_cert_module_tables.sql index ec4cf13..2e3ec06 100644 --- a/src/main/resources/db/migration/V7__add_cert_module_tables.sql +++ b/src/main/resources/db/migration/V7__add_cert_module_tables.sql @@ -4,22 +4,26 @@ CREATE TABLE IF NOT EXISTS t_key_entity ( id BIGINT PRIMARY KEY, - entity_name VARCHAR(255) NOT NULL, - algo_type VARCHAR(16) NOT NULL COMMENT 'SM2', + org_code VARCHAR(64) NOT NULL COMMENT 'organization code', + org_name VARCHAR(255) NOT NULL COMMENT 'organization name', + algo_type VARCHAR(16) NOT NULL COMMENT 'SM2 / RSA', key_len INT NOT NULL COMMENT 'SM2 fixed 256 in V1', key_idx INT NOT NULL COMMENT 'card key index, allowed range [2..8]', backup_data VARCHAR(500) NOT NULL COMMENT 'SDFE_BackupUserKey output', public_key VARCHAR(500) NOT NULL COMMENT 'public key, Base64/PEM', p10_data VARCHAR(2000) NULL COMMENT 'PKCS#10 PEM content', subject_dn VARCHAR(500) NULL COMMENT 'DN used when generating P10', + cert_mode VARCHAR(16) NULL COMMENT 'SINGLE / DOUBLE', + status VARCHAR(32) NOT NULL COMMENT 'CREATED / P10_GENERATED / CERT_IMPORTED', allow_ips VARCHAR(500) NULL COMMENT 'allowed source IP list', sign_data VARCHAR(512) NULL COMMENT 'reserved, not used in V1', create_by VARCHAR(64) NULL, create_time DATETIME(3) NOT NULL, update_time DATETIME(3) NOT NULL, UNIQUE KEY uk_t_key_entity_key_idx (key_idx), - KEY idx_t_key_entity_name (entity_name), + KEY idx_t_key_entity_org_code (org_code), KEY idx_t_key_entity_algo (algo_type), + KEY idx_t_key_entity_status (status), KEY idx_t_key_entity_create_time (create_time) ); @@ -43,7 +47,7 @@ CREATE TABLE IF NOT EXISTS t_certificate ( UNIQUE KEY uk_t_certificate_fingerprint (fingerprint), KEY idx_t_certificate_entity_id (entity_id), KEY idx_t_certificate_cert_type (cert_type), - KEY idx_t_certificate_issuer_dn (issuer_dn), + KEY idx_t_certificate_issuer_dn (issuer_dn(512)), KEY idx_t_certificate_valid_to (valid_to), KEY idx_t_certificate_import_time (import_time) ); @@ -66,7 +70,7 @@ CREATE TABLE IF NOT EXISTS t_trusted_cert ( create_time DATETIME(3) NOT NULL, update_time DATETIME(3) NOT NULL, UNIQUE KEY uk_t_trusted_cert_fingerprint (fingerprint), - KEY idx_t_trusted_cert_subject_dn (subject_dn), - KEY idx_t_trusted_cert_issuer_dn (issuer_dn), + KEY idx_t_trusted_cert_subject_dn (subject_dn(512)), + KEY idx_t_trusted_cert_issuer_dn (issuer_dn(512)), KEY idx_t_trusted_cert_valid_to (valid_to) );