Skip to content

Latest commit

 

History

History
134 lines (90 loc) · 2.03 KB

File metadata and controls

134 lines (90 loc) · 2.03 KB

SchemaForge

1. 项目定位

  • 自助数据库实验环境管理平台
  • 每个环境 = 一个 Oracle schema/user
  • 用户通过 Web 管理自己的环境

2. 数据库

  • 目标数据库:Oracle XE 11.2
  • 隔离方式:schema(user)
  • 不使用 PDB / 多实例

3. 技术栈

Frontend + Backend

  • Nuxt (全栈)

Oracle 访问

  • node-oracledb
  • Thick mode(用以支持 11g)

平台存储

  • Drizzle/SQLite
  • 存储:
    • 用户
    • 登录会话
    • 审计日志

Oracle 作为环境事实来源

  • schema / user 信息不写入 SQLite
  • 平台通过用户名规则和 Oracle 实时查询获取环境列表

4. 配置

  • 使用 环境变量
  • 不使用 TOML / JSON 配置文件

示例:

ORA_HOST
ORA_PORT
ORA_SERVICE
ORA_USER
ORA_PASS
ENV_PREFIX
ENV_QUOTA_MB
ENV_MAX_PER_USER

详情见 env.md


5. 环境模型

关系:

User (平台用户)
  └── N Environments
        └── 1 Oracle Schema/User

6. Oracle 用户名规则

格式:

S<学号>_<随机后缀>

示例:

S202301234_A7K9
Sabc123_xy7q

特点:

  • 以字母开头(Oracle要求)
  • ≤30字符
  • 可通过前缀查找用户环境
  • 学号仅允许小写字母和数字

7. 平台用户

  • 平台用户使用 id(学号)登录
  • 管理员账号通过环境变量首次初始化
  • 普通用户通过管理员上传 CSV 导入

8. 角色与权限

  • 角色只有两种:

    • admin
    • user
  • admin

    • 不拥有 Oracle 实验环境
    • 负责导入普通用户、重置平台密码
    • 可在页面内修改自己的平台密码
  • user

    • 只能管理自己的 Oracle 环境
    • 可创建、删除、重置密码、重置环境、查看连接信息

9. 环境策略

  • 单用户最大环境数默认 4
  • 单环境 quota 默认 50MB
  • 环境默认持久,不做续期 / 启用禁用
  • 删除环境前端做二次确认
  • Oracle 密码只在创建或重置时展示一次,平台不保存明文