sup-iam数据库设计说明书
数据库设计说明书
项目名称: sup-iam 身份识别与访问管理系统
编写人: 沈冬法
日期: 2025年12月15日
版本号: V1.0
1.设计目标与约束
1.1 设计目标
- 持久化存储元数据
- 高效的数据查询
- 安全的数据存储
- 可审计的数据处理
- 可演进的表结构
1.2 设计约束
- 确保明文存储的SK的安全
2.核心实体关系
我们有三大核心实体
- User:控制面的登录用户
- Secret: 密钥资源
- Policy:权限资源
和一大实体关系
- Secret和Policy的m:n绑定关系

3.表设计说明
3.1 users表(User)
字段设计表
| 名称 | 类型 | 业务 | 规模 | 约束和性质 |
|---|---|---|---|---|
| id | bigint | 自增主键 | 20位 | 主键,自增 |
| instanceID | 变字符串 | 跨域uud | 32位 | 唯一键 |
| username | 可变字符串 | 用户名 | 255位 | 唯一键,非空 |
| nickname | 可变字符串 | 昵称 | 30位 | 非空 |
| is_enable | tinyint | 账户是否启用, 1可用,0不可用 | 1位 | 非空 |
| phone | int | 手机号 | 20位 | 默认为空 |
| 可变字符串 | 邮箱 | 256位 | 默认为空 | |
| isAdmin | tinyint | 是否有管理员权限 | 1位 | 默认为0 |
| extandShadow | longtext | 拓展字段 | 不超过longtext | 默认为空 |
| loginedAt | timestamp | 登录时间 | 时间戳长度 | 默认为空 |
| createdAt | timestamp | 创建时间 | 时间戳长度 | 非空 |
| updatedAt | timestamp | 更新时间 | 时间戳长度 | 非空 |
3.2 secrets表(Secret)
| 名称 | 类型 | 业务 | 规模 | 约束和性质 |
|---|---|---|---|---|
| id | bigint | 自增主键 | 20位 | 主键,自增 |
| instanceID | 变字符串 | 跨域uud | 32位 | 唯一键 |
| username | 可变字符串 | 所属用户名 | 255位 | 外键,索引键,非空 |
| accessKey | 可变字符串 | 密钥ID | 36位 | 唯一键,非空 |
| secretKey | 可变字符串 | 私钥 | 255位 | 非空 |
| expires | int | 过期时间 | 64位 | 默认1534308590 |
| description | 可变字符串 | 密钥描述 | 255位 | 默认为空 |
| extandShadow | longtext | 拓展字段 | 不超过longtext | 默认为空 |
| createdAt | timestamp | 创建时间 | 时间戳长度 | 非空 |
| updatedAt | timestamp | 更新时间 | 时间戳长度 | 非空 |
3.3 policies审计表(Policy)
| 名称 | 类型 | 业务 | 规模 | 约束和性质 |
|---|---|---|---|---|
| id | bigint | 自增主键 | 20位 | 主键,自增 |
| instanceID | 变字符串 | 跨域uud | 32位 | 唯一键 |
| name | 可变字符串 | 策略名称 | 64位 | 非空 |
| username | 可变字符串 | 所属用户名 | 255位 | 外键,索引键,非空 |
| description | 可变字符串 | 密钥描述 | 255位 | 默认为空 |
| policyShadow | longtext | 策略描述影子字段 | 不超过longtext | 默认为空 |
| extandShadow | longtext | 拓展字段 | 不超过longtext | 默认为空 |
| createdAt | timestamp | 创建时间 | 时间戳长度 | 非空 |
| updatedAt | timestamp | 更新时间 | 时间戳长度 | 非空 |
3.4 secret_policy_binding绑定表
| 名称 | 类型 | 业务 | 规模 | 约束和性质 |
|---|---|---|---|---|
| id | bigint | 自增主键 | 20位 | 主键,自增 |
| secretID | bigint | 密钥ID | 20位 | 主键,自增 |
| policyID | bigint | 策略ID | 20位 | 主键,自增 |
| username | 可变字符串 | 所属用户名 | 255位 | 外键,索引键,非空 |
| extandShadow | longtext | 拓展字段 | 不超过longtext | 默认为空 |
| createdAt | timestamp | 创建时间 | 时间戳长度 | 非空 |
3.5 secret_policy_binding_autid绑定表
| 名称 | 类型 | 业务 | 规模 | 约束和性质 |
|---|---|---|---|---|
| id | bigint | 自增主键 | 20位 | 主键,自增 |
| secretID | bigint | 密钥ID | 20位 | 主键,自增 |
| policyID | bigint | 策略ID | 20位 | 主键,自增 |
| username | 可变字符串 | 所属用户名 | 255位 | 外键,索引键,非空 |
| extandShadow | longtext | 拓展字段 | 不超过longtext | 默认为空 |
| createdAt | timestamp | 创建时间 | 时间戳长度 | 非空 |
3.4 policies_audit审计表(Policy)
| 名称 | 类型 | 业务 | 规模 | 约束和性质 |
|---|---|---|---|---|
| id | bigint | 自增主键 | 20位 | 主键,自增 |
| instanceID | 变字符串 | 跨域uud | 32位 | 唯一键 |
| name | 可变字符串 | 策略名称 | 64位 | 非空 |
| username | 可变字符串 | 所属用户名 | 255位 | 外键,索引键,非空 |
| description | 可变字符串 | 密钥描述 | 255位 | 默认为空 |
| policyShadow | longtext | 策略描述影子字段 | 不超过longtext | 默认为空 |
| extandShadow | longtext | 拓展字段 | 不超过longtext | 默认为空 |
| createdAt | timestamp | 创建时间 | 时间戳长度 | 非空 |
| updatedAt | timestamp | 更新时间 | 时间戳长度 | 非空 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 supdriver的博客!
评论