SchemaForge
- 自助数据库实验环境管理平台
- 每个环境 = 一个 Oracle schema/user
- 用户通过 Web 管理自己的环境
- 目标数据库:Oracle XE 11.2
- 隔离方式:schema(user)
- 不使用 PDB / 多实例
Frontend + Backend
- Nuxt (全栈)
Oracle 访问
node-oracledb- Thick mode(用以支持 11g)
平台存储
- Drizzle/SQLite
- 存储:
- 用户
- 登录会话
- 审计日志
Oracle 作为环境事实来源
- schema / user 信息不写入 SQLite
- 平台通过用户名规则和 Oracle 实时查询获取环境列表
- 使用 环境变量
- 不使用 TOML / JSON 配置文件
示例:
ORA_HOST
ORA_PORT
ORA_SERVICE
ORA_USER
ORA_PASS
ENV_PREFIX
ENV_QUOTA_MB
ENV_MAX_PER_USER
详情见 env.md
关系:
User (平台用户)
└── N Environments
└── 1 Oracle Schema/User
格式:
S<学号>_<随机后缀>
示例:
S202301234_A7K9
Sabc123_xy7q
特点:
- 以字母开头(Oracle要求)
- ≤30字符
- 可通过前缀查找用户环境
- 学号仅允许小写字母和数字
- 平台用户使用
id(学号)登录 - 管理员账号通过环境变量首次初始化
- 普通用户通过管理员上传 CSV 导入
-
角色只有两种:
adminuser
-
admin- 不拥有 Oracle 实验环境
- 负责导入普通用户、重置平台密码
- 可在页面内修改自己的平台密码
-
user- 只能管理自己的 Oracle 环境
- 可创建、删除、重置密码、重置环境、查看连接信息
- 单用户最大环境数默认
4 - 单环境 quota 默认
50MB - 环境默认持久,不做续期 / 启用禁用
- 删除环境前端做二次确认
- Oracle 密码只在创建或重置时展示一次,平台不保存明文