47 lines
2.3 KiB
Markdown
47 lines
2.3 KiB
Markdown
# A 卡运维数据库 DBA 授权申请 V0.1
|
||
|
||
> 目标:现有 `model_platform` 保持不变,新建 `model_operations`。以下为权限范围说明,不包含真实账号名和口令。
|
||
|
||
## 1. 运维后端
|
||
|
||
- 现有 `DATABASE_URL`:沿用平台后端连接,用于认证、工作空间和存储;运维代码只查询必要字段。
|
||
- 新增 `OPERATIONS_DATABASE_URL`:连接 `model_operations`,读写运维业务表。
|
||
- 不申请对 `model_platform` 新增、修改或删除表结构。
|
||
|
||
建议平台库最小读取范围:
|
||
|
||
| 表 | 字段/用途 |
|
||
|---|---|
|
||
| `users` | `user_id/display_name/status/platform_role_id/is_deleted`,明确排除 `password_hash` |
|
||
| `roles` | `role_id/role_code/role_name/role_scope/is_deleted` |
|
||
| `workspaces` | `workspace_id/workspace_code/workspace_name/status/is_deleted` |
|
||
| `workspace_members` | `workspace_id/user_id/role_id/member_status/is_deleted` |
|
||
| `storage_objects` | 文件元数据;优先通过现有存储服务访问 |
|
||
| `versions/scripts` | 可选关联开发制品,不作为业务模型主数据 |
|
||
| `schedules/schedule_runs` | 可选关联模型计算任务,只读运行状态 |
|
||
|
||
## 2. 模型数据写入方
|
||
|
||
建议为模型任务使用独立 `MODEL_WRITER_DATABASE_URL`:
|
||
|
||
- `SELECT`:`ops_model_categories` 和 7 张模型源表。
|
||
- `INSERT/UPDATE`:`ops_banks`、`ops_model_instances`、`ops_model_versions`、`ops_monitor_batches`、`ops_monitor_results`、`ops_monitor_feature_metrics`、`ops_monitor_distributions`。
|
||
- `INSERT`:`ops_outbox_events`,事件类型限定为 `monitor_batch.published`。
|
||
- 不授予 `DELETE`,不授予 15 张运维业务表写权限。
|
||
|
||
已发布批次后的源结果不可修改,该限制还需由写入服务校验;MySQL 表级授权本身无法按行状态限制 `UPDATE`。
|
||
|
||
## 3. 架构迁移账号
|
||
|
||
- 仅在发布窗口使用,可对 `model_operations` 执行 DDL 和种子数据脚本。
|
||
- 不作为应用运行账号保存到服务配置。
|
||
- 不授予对 `model_platform` 的 DDL 权限。
|
||
|
||
## 4. 审核项
|
||
|
||
- MySQL 版本需为 8.0,字符集 `utf8mb4`,排序规则 `utf8mb4_0900_ai_ci`。
|
||
- 确认新库备份、恢复、容量告警和慢查询策略。
|
||
- 确认两套连接池上限,避免同一 FastAPI 进程挤满数据库连接。
|
||
- 确认 Schedule Executor 何时增加 `model_operations` Outbox 轮询连接。
|
||
|