|
|
-- 完整的数据库初始化脚本
|
|
|
-- 使用前请先创建数据库: CREATE DATABASE Simple_CA DEFAULT CHARACTER SET = 'utf8mb4';
|
|
|
|
|
|
USE Simple_CA;
|
|
|
|
|
|
-- 如果表已存在则删除(谨慎使用)
|
|
|
-- DROP TABLE IF EXISTS `crls`;
|
|
|
-- DROP TABLE IF EXISTS `certificates`;
|
|
|
-- DROP TABLE IF EXISTS `ca_requests`;
|
|
|
-- DROP TABLE IF EXISTS `user_tokens`;
|
|
|
-- DROP TABLE IF EXISTS `users`;
|
|
|
|
|
|
-- 创建用户表
|
|
|
CREATE TABLE IF NOT EXISTS `users` (
|
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
|
`created_at` datetime DEFAULT NULL,
|
|
|
`updated_at` datetime DEFAULT NULL,
|
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
|
`username` varchar(16) NOT NULL,
|
|
|
`password` varchar(255) NOT NULL,
|
|
|
`email` varchar(255) DEFAULT NULL,
|
|
|
`authority` int DEFAULT NULL COMMENT '权限,1表示系统管理员',
|
|
|
PRIMARY KEY (`id`),
|
|
|
UNIQUE KEY `username` (`username`),
|
|
|
KEY `idx_users_deleted_at` (`deleted_at`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
|
|
|
|
|
|
-- 创建用户Token表
|
|
|
CREATE TABLE IF NOT EXISTS `user_tokens` (
|
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
|
`created_at` datetime DEFAULT NULL,
|
|
|
`updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
|
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
|
`user_id` int NOT NULL,
|
|
|
`token` varchar(512) NOT NULL COMMENT 'JWT Token',
|
|
|
`expire_time` bigint NOT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_user_tokens_deleted_at` (`deleted_at`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户token表';
|
|
|
|
|
|
-- 创建CA请求表
|
|
|
CREATE TABLE IF NOT EXISTS `ca_requests` (
|
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
|
`created_at` datetime DEFAULT NULL COMMENT '字段创建时间',
|
|
|
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
|
|
|
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
|
|
|
`user_id` int NOT NULL COMMENT '申请证书的用户ID',
|
|
|
`state` int unsigned NOT NULL COMMENT '证书状态(1:待审核, 2: 审核通过, 3:审核未通过)',
|
|
|
`public_key` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公钥',
|
|
|
`csr_content` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'CSR文件内容',
|
|
|
`country` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '国家',
|
|
|
`province` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '州市',
|
|
|
`locality` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '地区',
|
|
|
`organization` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '组织',
|
|
|
`organization_unit_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '部门',
|
|
|
`common_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
|
|
|
`email_address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱',
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_ca_requests_deleted_at` (`deleted_at`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='请求列表';
|
|
|
|
|
|
-- 创建证书表
|
|
|
CREATE TABLE IF NOT EXISTS `certificates` (
|
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
|
`created_at` datetime DEFAULT NULL,
|
|
|
`updated_at` datetime DEFAULT NULL,
|
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
|
`user_id` int NOT NULL COMMENT '证书拥有者ID',
|
|
|
`state` int unsigned NOT NULL COMMENT '状态(1 代表在使用中,2代表已撤销或过期)',
|
|
|
`request_id` int NOT NULL COMMENT '证书请求ID',
|
|
|
`expire_time` datetime NOT NULL COMMENT '过期时间戳',
|
|
|
`certificate_content` text CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '证书内容(PEM格式)',
|
|
|
`serial_number` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '证书序列号',
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_certificates_deleted_at` (`deleted_at`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='证书列表';
|
|
|
|
|
|
-- 创建证书吊销列表表
|
|
|
CREATE TABLE IF NOT EXISTS `crls` (
|
|
|
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
|
|
`created_at` datetime DEFAULT NULL,
|
|
|
`updated_at` datetime DEFAULT NULL,
|
|
|
`deleted_at` datetime DEFAULT NULL,
|
|
|
`certificate_id` int NOT NULL COMMENT '证书ID',
|
|
|
`input_time` bigint NOT NULL COMMENT '加入时间戳',
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_crls_deleted_at` (`deleted_at`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='证书吊销列表';
|
|
|
|