Files
Neo-ZQYY/docs/database/BD_Manual_auth_biz_schemas.md
Neo b25308c3f4 feat: P1-P3 全栈集成 — 数据库基础 + DWS 扩展 + 小程序鉴权 + 工程化体系
## P1 数据库基础
- zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu
- etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表
- 清理 assistant_abolish 残留数据

## P2 ETL/DWS 扩展
- 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution)
- 新增 assistant_order_contribution_task 任务及 RLS 视图
- member_consumption 增加充值字段、assistant_daily 增加处罚字段
- 更新 ODS/DWD/DWS 任务文档及业务规则文档
- 更新 consistency_checker、flow_runner、task_registry 等核心模块

## P3 小程序鉴权系统
- 新增 xcx_auth 路由/schema(微信登录 + JWT)
- 新增 wechat/role/matching/application 服务层
- zqyy_app 鉴权表迁移 + 角色权限种子数据
- auth/dependencies.py 支持小程序 JWT 鉴权

## 文档与审计
- 新增 DOCUMENTATION-MAP 文档导航
- 新增 7 份 BD_Manual 数据库变更文档
- 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth)
- 新增全栈集成审计记录、部署检查清单更新
- 新增 BACKLOG 路线图、FDW→Core 迁移计划

## Kiro 工程化
- 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务)
- 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan)
- 新增 6 个 Hook(合规检查/会话日志/提交审计等)
- 新增 doc-map steering 文件

## 运维与测试
- 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告
- 新增属性测试:test_dws_contribution / test_auth_system
- 清理过期 export 报告文件
- 更新 .gitignore 排除规则
2026-02-26 08:03:53 +08:00

88 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BD_Manualauth/biz Schema 与权限配置
> 目标库:`test_zqyy_app`(通过 `APP_DB_DSN` 连接)
> 迁移脚本:`db/zqyy_app/migrations/2026-02-24__p1_create_auth_biz_schemas.sql`
> 关联 SPEC`miniapp-db-foundation`P1 基础设施层)
---
## 1. 变更说明
### 新增 Schema
| Schema | 用途 |
|--------|------|
| `auth` | 用户认证、权限、微信 OpenID 映射等 |
| `biz` | 业务数据任务、备注、AI 分析、Excel 导出等) |
### 权限配置
| 角色 | Schema | 权限 |
|------|--------|------|
| `app_user` | `auth` | `USAGE` + `SELECT, INSERT, UPDATE, DELETE ON ALL TABLES` + `ALTER DEFAULT PRIVILEGES` |
| `app_user` | `biz` | `USAGE` + `SELECT, INSERT, UPDATE, DELETE ON ALL TABLES` + `ALTER DEFAULT PRIVILEGES` |
### 未操作的 Schema
- `public`:保留现有系统管理表(`admin_users``roles``permissions` 等)不受影响,脚本不包含任何对 `public` Schema 的操作
---
## 2. 兼容性影响
| 组件 | 影响 |
|------|------|
| ETL 任务 | 无影响。本脚本仅操作业务库,不涉及 ETL 库 |
| 后端 API | 前置依赖。后续业务表将创建在 `auth`/`biz` Schema 中,后端需使用 `auth.` / `biz.` 前缀或设置 `search_path` |
| 小程序 | 无直接影响。小程序通过后端 API 间接访问 |
| 管理后台 | 无直接影响 |
| FDW 配置 | 无影响。`fdw_etl` Schema 独立于 `auth`/`biz` |
| `public` Schema | 无影响。脚本不包含任何对 `public` 的操作 |
---
## 3. 回滚策略
迁移脚本末尾已包含注释形式的回滚语句,按逆序执行:
```sql
ALTER DEFAULT PRIVILEGES IN SCHEMA biz REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLES FROM app_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA auth REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLES FROM app_user;
REVOKE SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA biz FROM app_user;
REVOKE USAGE ON SCHEMA biz FROM app_user;
REVOKE SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA auth FROM app_user;
REVOKE USAGE ON SCHEMA auth FROM app_user;
DROP SCHEMA IF EXISTS biz CASCADE;
DROP SCHEMA IF EXISTS auth CASCADE;
```
注意:`DROP SCHEMA CASCADE` 会级联删除 Schema 内所有表和依赖对象。如果 `auth`/`biz` 中已有业务表,需先备份数据再执行回滚。
---
## 4. 验证 SQL
```sql
-- 1. 验证 auth 和 biz Schema 存在
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name IN ('auth', 'biz')
ORDER BY schema_name;
-- 2. 验证 app_user 对 auth Schema 有 USAGE 权限
SELECT has_schema_privilege('app_user', 'auth', 'USAGE') AS auth_usage,
has_schema_privilege('app_user', 'biz', 'USAGE') AS biz_usage;
-- 3. 验证 ALTER DEFAULT PRIVILEGES 已设置(查询 pg_default_acl
SELECT n.nspname AS schema_name,
d.defaclacl AS default_acl
FROM pg_default_acl d
JOIN pg_namespace n ON n.oid = d.defaclnamespace
WHERE n.nspname IN ('auth', 'biz');
-- 4. 验证 public Schema 中现有表未受影响
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BY table_name;
```