首页 > 数据库 >KMC数据库设计

KMC数据库设计

时间:2024-10-30 21:30:58浏览次数:1  
标签:KeyID KMC INT 数据库 UserID DATETIME KEY 设计 VARCHAR

存一下密钥管理中心数据库,免得找不到了

具体表格:

表名 列名 数据类型 主键 外键
Keys KeyID INT PK
KeyValue VARBINARY(256)
KeyType VARCHAR(50)
CreatedAt DATETIME
ExpirationDate DATETIME
Status ENUM
Key_Pools PoolID INT PK
PoolName ENUM
Description VARCHAR(255)
Key_Pool_Assignment AssignmentID INT PK
KeyID INT FK (Keys.KeyID)
PoolID INT FK (Key_Pools.PoolID)
AssignedAt DATETIME
Key_Usage UsageID INT PK
KeyID INT FK (Keys.KeyID)
UserID INT FK (Users.UserID)
Action ENUM
Timestamp DATETIME
Users UserID INT PK
Username VARCHAR(50)
PasswordHash VARBINARY(256)
CreatedAt DATETIME
LastLogin DATETIME
Role ENUM
Roles RoleID INT PK
RoleName ENUM
Description VARCHAR(255)
User_Roles UserRoleID INT PK
UserID INT FK (Users.UserID)
RoleID INT FK (Roles.RoleID)
Key_Policies PolicyID INT PK
KeyID INT FK (Keys.KeyID)
AllowedUsers VARCHAR(255)
ExpirationDuration INT
Audit_Log LogID INT PK
KeyID INT FK (Keys.KeyID)
UserID INT FK (Users.UserID)
Action VARCHAR(255)
Timestamp DATETIME
Key_Revocation RevocationID INT PK
KeyID INT FK (Keys.KeyID)
RevocationReason VARCHAR(255)
RevocationDate DATETIME
Key_Operation_Sessions SessionID VARCHAR(50) PK
KeyID INT FK (Keys.KeyID)
Operation ENUM
UserID INT FK (Users.UserID)
Timestamp DATETIME

sql设计:

CREATE TABLE Keys (
    KeyID INT PRIMARY KEY AUTO_INCREMENT,
    KeyValue VARBINARY(256) NOT NULL,
    KeyType VARCHAR(50) NOT NULL,
    CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    ExpirationDate DATETIME,
    Status ENUM('ACTIVE', 'BACKUP', 'DESTROYED', 'REVOKED') DEFAULT 'ACTIVE'
);


CREATE TABLE Key_Pools (
    PoolID INT PRIMARY KEY AUTO_INCREMENT,
    PoolName ENUM('ACTIVE_POOL', 'BACKUP_POOL', 'DESTROYED_POOL') NOT NULL,
    Description VARCHAR(255)
);


CREATE TABLE Key_Pool_Assignment (
    AssignmentID INT PRIMARY KEY AUTO_INCREMENT,
    KeyID INT,
    PoolID INT,
    AssignedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (KeyID) REFERENCES Keys(KeyID),
    FOREIGN KEY (PoolID) REFERENCES Key_Pools(PoolID)
);


CREATE TABLE Key_Usage (
    UsageID INT PRIMARY KEY AUTO_INCREMENT,
    KeyID INT,
    UserID INT,
    Action ENUM('ENCRYPT', 'DECRYPT', 'SIGN', 'VERIFY') NOT NULL,
    Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (KeyID) REFERENCES Keys(KeyID),
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);


CREATE TABLE Users (
    UserID INT PRIMARY KEY AUTO_INCREMENT,
    Username VARCHAR(50) UNIQUE NOT NULL,
    PasswordHash VARBINARY(256) NOT NULL,
    CreatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
    LastLogin DATETIME,
    Role ENUM('SYSTEM_ADMIN', 'AUDITOR', 'OPERATOR') NOT NULL -- 用户角色
);


CREATE TABLE Key_Policies (
    PolicyID INT PRIMARY KEY AUTO_INCREMENT,
    KeyID INT,
    AllowedUsers VARCHAR(255),
    ExpirationDuration INT,
    FOREIGN KEY (KeyID) REFERENCES Keys(KeyID)
);


CREATE TABLE Audit_Log (
    LogID INT PRIMARY KEY AUTO_INCREMENT,
    KeyID INT,
    UserID INT,
    Action VARCHAR(255),
    Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (KeyID) REFERENCES Keys(KeyID),
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);


CREATE TABLE Key_Revocation (
    RevocationID INT PRIMARY KEY AUTO_INCREMENT,
    KeyID INT,
    RevocationReason VARCHAR(255),
    RevocationDate DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (KeyID) REFERENCES Keys(KeyID)
);

CREATE TABLE Roles (
    RoleID INT PRIMARY KEY AUTO_INCREMENT,
    RoleName ENUM('SYSTEM_ADMIN', 'AUDITOR', 'OPERATOR') UNIQUE NOT NULL,
    Description VARCHAR(255)
);

CREATE TABLE User_Roles (
    UserRoleID INT PRIMARY KEY AUTO_INCREMENT,
    UserID INT,
    RoleID INT,
    FOREIGN KEY (UserID) REFERENCES Users(UserID),
    FOREIGN KEY (RoleID) REFERENCES Roles(RoleID)
);

CREATE TABLE Key_Operation_Sessions (
    SessionID VARCHAR(50) PRIMARY KEY,
    KeyID INT,
    Operation ENUM('调密钥', '冻结', '销毁') NOT NULL,
    UserID INT,
    Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (KeyID) REFERENCES Keys(KeyID),
    FOREIGN KEY (UserID) REFERENCES Users(UserID)
);

标签:KeyID,KMC,INT,数据库,UserID,DATETIME,KEY,设计,VARCHAR
From: https://www.cnblogs.com/20222320zcc/p/18516656

相关文章

  • 【设计模式】异步阻塞、异步回调模式
    1 前言为什么要看这个异步回调呢?是因为我上节在看RocektMQ发送消息的时候,它支持同步、异步、一次性的模式,后两者不会阻塞当前线程,但是看这两者都没用到线程池,那它是如何处理的呢?我们看下三者最后的落点,都是在 NettyRemotingAbstract这个类里://NettyRemotingAbstract#inv......
  • 【系统设计】高效的分布式系统:使用 Spring Boot 和 Kafka 实现 Saga 模式
    在现代分布式系统中,管理跨多个服务的长事务至关重要。传统的分布式事务解决方案往往面临性能瓶颈和复杂性问题,而Saga模式作为一种灵活高效的解决方案,逐渐受到开发者的青睐。本文将探讨如何利用SpringBoot和Kafka实现Saga模式,并详细介绍事务补偿机制,帮助你构建稳定......
  • Java项目:232基于Springboot+vue图书个性化推荐系统的设计与实现(含论文+答辩PPT)
    作者主页:夜未央5788 简介:Java领域优质创作者、Java项目、学习资料、技术互助文末获取源码项目介绍基于Springboot+vue图书个性化推荐系统的设计与实现本系统为分为前后台,包含管理员、学生两种角色,前台为学生登录,后台为管理员登录。学生:首页、图书信息、好书推荐、图......
  • DBeave如何查看数据库表的DDL创建语句
    前言我们在使用DBeave时,有时候是需要看一下某个表的创建语句的,这样方便我们在其他数据库创建该表。那么,我们呢应该如何查看表的创建语句呢?如何查看DDL首先,我们选择我们要查看的数据库表,然后鼠标双击下该表。然后,我们点击下上方的属性,然后在下面再点下DDL选项。然后,我们就......
  • java+vue计算机毕设二手交易平台的设计实现【开题+程序+论文+源码】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的迅猛发展和电子商务的日益普及,人们的消费观念逐渐转变,对于闲置物品的再利用需求日益增长。二手交易平台作为一种新兴的电子商务模式,......
  • 基于STL的自定义栈与队列实现:灵活选择底层容器的模板设计
    文章目录代码模板设计主要成员函数底层容器的选择模板设计底层容器的选择关于stack的示例代码关于queue的示例代码前言:在本文中,我们将分析一个模拟C++标准模板库(STL)栈的自定义实现以及模仿C++标准模板库(STL)队列的自定义实现。该stack类模板允许在底层容器的选择......
  • 基于MATLAB的人体姿势的检测课程设计
    设计原理首先利用统计的方法得到背景模型,并实时地对背景模型进行更新以适应光线变化和场景本身的变化,用形态学方法和检测连通域面积进行后处理,消除噪声和背景扰动带来的影响,在HSV色度空间下检测阴影,得到准确的运动目标。噪声的影响,会使检测结果中出现一些本身背景的区域像素......
  • 【数字化转型】数字化平台数据架构设计与规划
    免责声明本号所载内容为原创或整理于互联网公开资料,版权归原作者所有。文章仅供读者学习交流,不作任何商业用途。因部分内容无法确认真正来源,如有标错来源或涉及作品版权问题烦请告知,将及时处理,谢谢!-End-参考......
  • 详解:模板设计模式
            模板设计模式(TemplatePattern)是一种行为设计模式,在软件设计中有着广泛的应用,旨在提高代码的可维护性和可复用性。一、定义与特点定义:模板设计模式定义了一个算法的骨架,将某些步骤推迟到子类中实现。这样,可以在不改变算法结构的情况下,重新定义算法中的某些......
  • 基于单片机的的报警系统的设计(论文+源码)
    1、系统设计方案    本设计基于单片机的的报警系统设计,主要是结合单片机技术立足于产业应用而展开,全文针对目标功能进行关键器件的选择,电路图绘制,软件程序编写等等,在整个文章的章节结构上,大致如下:在第一章绪论对基于单片机的的报警系统设计课题的理论背景进行分析并引......