更新记录
1.6.0(2026-09-06)
首个正式发布:开箱即用的多租户云端数据库 UTS 插件(App/小程序/H5 全端可用)。
- 注册登录即用:内置云端服务,无需自建服务器
- 多租户隔离 + 配额:每用户一库,数据互不可见
- 端到端加密:文本字段 AES-256-CBC + HMAC 加密入库,平台不可读明文
- 全套 API + 可视化组件:建库/建表/字段/主键/增删改查/SQL,无需写 SQL
- 生产级服务端:请求限流 + 连接池 + 每日自动备份(可私有部署,见附件)
云端演示服务仅供体验测试;正式生产建议购买源码授权私有部署。
平台兼容性
uni-app(3.8.3)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Chrome插件版本 | Safari | Safari插件版本 | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | 6.0 | 1.6.0 | × | × |
| 微信小程序 | 微信小程序插件版本 | 支付宝小程序 | 支付宝小程序插件版本 | 抖音小程序 | 抖音小程序插件版本 | 百度小程序 | 百度小程序插件版本 | 快手小程序 | 快手小程序插件版本 | 京东小程序 | 京东小程序插件版本 | 鸿蒙元服务 | 鸿蒙元服务插件版本 | QQ小程序 | QQ小程序插件版本 | 飞书小程序 | 飞书小程序插件版本 | 小红书小程序 | 小红书小程序插件版本 | 快应用-华为 | 快应用-华为插件版本 | 快应用-联盟 | 快应用-联盟插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 | √ | 1.6.0 |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| × | √ | √ |
ZXB-CloudDB 云端数据库 UTS 插件
在线门户与演示
- 产品门户:https://www.zxbcloud.cn/ZXB-CloudDB/ —— 了解特性与实时服务状态(一键直达)
- 云端服务:https://www.zxbcloud.cn —— 插件内置地址,安装即用,注册账号即可开始
- 服务状态 API:https://www.zxbcloud.cn/api/ping —— 可用浏览器直接访问检测
为 App / 小程序 / H5 开发者提供零配置一键接入云端数据库的能力。插件内置简洁的设置界面(输入框组件),开发者无需写任何 SQL,即可完成:
- 数据库名称、表格名称、字段名称、字段类型、主键、自增、非空、默认值 的设置
- SQL 生成与执行(支持自定义 SQL 建库建表)
- 数据的 增 / 删 / 改 / 查
v1.5.1 新增:彻底 Token 化——移除平台 API Key,注册/登录公开,全部数据库操作强制登录。
特性
| 能力 | 说明 |
|---|---|
| 全端支持 | App(Android/iOS)、微信小程序、支付宝小程序、H5,一套代码 |
| 零配置 | 服务器地址内置在插件类静态属性 ZXBCloudDB.serverUrl(v1.5.1 起无平台 Key,纯 Token 鉴权) |
| 多租户 | 注册/登录后建库自动归属当前用户,数据互相隔离(非本人连"库存在"都探测不到),可建同名库互不影响 |
| 数据库密码 | 建库必设密码(4-64位),服务端只存 PBKDF2 哈希,所有操作校验 |
| 加密等级 | 建库时选择:一级=存储明文(可 LIKE 模糊查询);二级=库内密文(端到端) |
| 配额 | 服务端限制每用户库数量与单库容量(超限自动拒绝/回滚) |
| 写入限制 | 本地预校验(v1.5.2):单字段 ZXBCloudDB.maxFieldChars(默认 341KB ≈ 256KB 二进制)与单次写入 maxWriteChars(默认 512KB),超限不发请求直接拒绝,节省流量;服务端同限值纵深防御 |
| 端到端加密 | 二级加密:文本字段客户端 AES-256-CBC + HMAC-SHA256,服务端只存密文 |
| 传输协议 | HTTPS(REST),TLS 加密传输 |
| 服务端 | Flask + SQLite,部署简单,每个数据库对应一个 .db 文件 |
| 中文支持 | 数据库名、表名、字段名均支持中文 |
快速开始
1. 无需部署服务器(开箱即用)
插件已内置云端服务地址(ZXBCloudDB.serverUrl = https://www.zxbcloud.cn,域名已 ICP 备案并启用 HTTPS),安装即用,不需要自己拥有服务器——注册账号 → 建库 → 建表 → 增删改查,全部走插件内置的云端服务。
⚠️ 内置云端为公开演示/开发测试服务:多租户隔离 + 端到端加密保证用户间互不可见,但请勿在其中存放高敏感生产数据;正式上线请下载插件市场附件中的服务端(Flask + SQLite)私有部署到自己的服务器,再修改
ZXBCloudDB.serverUrl即可无缝切换。需要私有部署的团队:插件市场附件提供完整服务端(Flask + SQLite,支持 waitress 生产模式、限流、配额),可部署到自己的服务器后修改
serverUrl即可。
2. 安装插件
将 uni_modules/ZXB-CloudDB 整个目录复制到你的 uni-app 项目 uni_modules/ 下。
3. 使用配置组件(方式一,推荐)
在任意页面直接使用(easycom 自动注册):
<template>
<zxdb-form dbName="my_db" tableName="users" />
</template>
组件内置完整界面:建库(设密码 + 选加密等级)、连接已有库、建表、字段编辑(主键/自增/非空/默认值)、SQL 预览与执行、数据增删改查。一级加密存明文可模糊查询;二级加密文本自动加密入库、查询结果自动解密展示,还可在面板一键切换等级。
4. 使用 API(方式二)
import { ZXBCloudDB } from '@/uni_modules/ZXB-CloudDB'
const db = new ZXBCloudDB({ timeout: 10000, transport: 'http' })
// 建库(必须设置密码)→ 设置密码 → 取盐值派生加密密钥
await db.createDatabase('my_db', 'mypassword')
db.setDbPassword('my_db', 'mypassword') // 之后对该库的所有操作自动携带密码校验
const r = await db.getDbSalt('my_db') // data.salt
// 建表
await db.createTable('my_db', 'users', [
{ name: 'id', type: 'INTEGER', notNull: false, defaultValue: null, primaryKey: true, autoIncrement: true },
{ name: 'name', type: 'TEXT', notNull: true, defaultValue: null, primaryKey: false, autoIncrement: false }
], null)
// 文本字段请先端到端加密再写入(工具函数见演示工程 pages/db/db-demo.vue)
await db.insert('my_db', 'users', { name: encryptText('张三'), age: 25 })
const res = await db.query('my_db', 'SELECT * FROM "users"', null)
console.log(res.data.rows) // 文本列返回密文,需用密码解密展示
API 一览
所有方法返回 Promise<ZXBDbResult>,ZXBDbResult = { code: number, message: string, data: any },code == 0 表示成功。
| 方法 | 说明 |
|---|---|
ping() |
连接测试 |
registerUser(username, password) / loginUser(username, password) |
注册/登录,成功自动记录 Token(data: {uid, username, token}) |
logoutUser() / setToken(token) / clearToken() |
退出登录 / 手动设置 / 清除用户 Token |
setDbPassword(db, pwd) / clearDbPassword(db) |
设置/清除库密码(设置后自动携带) |
createDatabase(name, password, encLevel?) |
建库(登录后自动归属当前用户;encLevel: 1=存储明文可模糊查询 / 2=库内密文,默认 2) |
setDbLevel(db, level) |
修改加密等级(已有数据不自动转换) |
dropDatabase(name, password) / listDatabases() |
删库 / 数据库列表(登录后只返回自己的库) |
getDbSalt(db) |
获取加密盐值+等级(data: {salt, enc_level}) |
createTable(db, table, fields, primaryKey) |
建表(服务端自动生成 SQL) |
listTables(db) / describeTable(db, table) |
表列表 / 表结构 |
execSQL(db, sql) |
执行一条 SQL(DDL/DML) |
query(db, sql, params) |
查询(仅 SELECT/WITH/EXPLAIN,可参数化) |
insert(db, table, data) |
插入一行 |
update(db, table, data, where) |
更新(where 必填) |
delete(db, table, where) |
删除(where 必填) |
多租户(v1.5.1)
// 注册即登录(Token 自动记录在插件实例中)
const r = await db.registerUser('张三', 'mypassword')
// 之后创建的库自动归属"张三",其他用户无法访问
await db.createDatabase('my_db', 'dbpass')
const list = await db.listDatabases() // 只返回自己的库
- 隔离机制:服务端对每个库记录 owner,所有操作先校验"库是否属于当前 Token 的用户"——非本人访问返回"数据库不存在"(不泄露任何信息)
- 同名库:不同用户可各自创建
my_db,物理隔离、互不影响 - 强制登录:v1.5.1 起所有数据库操作必须登录(无平台模式,注册/登录公开)
- 配额:服务端限制每用户库数量(默认 10)与单库容量(默认 100MB),超限自动拒绝
- 组件
zxdb-form内置「⓪ 用户」区块:登录/注册/退出,Token 本地持久化,登录后建库自动归属当前用户
加密等级
两个等级客户端都会加密后再传输(传输均为密文),密钥 = PBKDF2(密码, 盐值),密钥由用户持有、平台不落盘。区别只在服务器端存储方式:
| 等级 | 传输 | 服务器处理 | 存储 | 查询能力 | 平台可见性 |
|---|---|---|---|---|---|
| 一级 | 密文 | 用请求携带的密码临时派生密钥解密 | 明文 | 支持 LIKE 模糊查询、等值匹配 |
库内明文(平台技术上可读) |
| 二级(默认) | 密文 | 不解密,原样存储 | 密文 zxb1$iv$cipher$hmac |
强制第一个字段为 userID(明文,不加密)——其他文本列全密文,增删改查只能用 userID 定位 | 平台无法读取明文 |
等级在建库时选择,存在服务端元数据(任何设备连接同一库都遵循同一等级);也可在配置面板/setDbLevel 切换,但已有数据不会自动转换(一级→二级:旧明文仍在库中;二级→一级:旧密文保持密文,仅新写入由服务器解密存明文)。
说明:一级加密下服务器需在请求时用密码临时派生密钥才能解密(密码来自
X-DB-Password头,仅内存使用、不落盘)。若需"平台完全不接触明文",请选择二级。
安全模型
- 数据库密码:建库时设置,服务端只存
PBKDF2(密码, 随机盐)哈希——即使数据库文件被拖走也无法反推密码。 - 客户端加密传输:两个等级下文本字段均在客户端用
AES-256-CBC加密后传输(密钥 =PBKDF2(密码, 服务端盐值, 10000),附 HMAC-SHA256 完整性校验),网络上传输的均为密文。 - 二级库内密文:服务器不解密直接存储,平台无法读取明文;密码丢失 = 数据永久无法解密。
- 一级库内明文:服务器解密后存储明文,支持模糊查询;密钥不落盘,但库内数据平台技术上可读——请按数据敏感度选择。
- 二级加密列限制:加密后的文本列不能用于 SQL 等值/模糊匹配(如
WHERE name='张三'无效),请用主键/数值列定位记录——需要模糊查询时请选择一级加密。
注意事项(重要)
- 小程序网络限制:微信/支付宝小程序要求服务器为 HTTPS + 备案域名,且需在小程序后台配置 request 合法域名。纯 IP + HTTP 直连仅 App/H5 可行。
- 服务器地址:插件内置云端服务地址(
ZXBCloudDB.serverUrl静态属性),开箱即用,无需自己部署服务器。需要私有部署时,用插件市场附件里的服务端部署到自己的服务器,再修改该地址(App 真机调试可用局域网 IP)。 - 鉴权:v1.5.1 起无平台 API Key,客户端只需登录(Token 自动携带);服务器
config.py的API_KEY字段保留备用。 - uni-app x:本插件为 uni-app(Vue)设计;迁移 uni-app x 时需补充
utssdk/interface.uts类型声明(API 类已就绪)。
目录结构
uni_modules/ZXB-CloudDB/
├── package.json
├── utssdk/
│ └── index.uts # UTS 插件核心(跨端,含写死连接常量)
├── common/
│ └── crypto-js.min.js # 端到端加密依赖(纯 JS,全端可用)
└── components/
└── zxdb-form/ # 设置界面组件(easycom,自动加解密)
版本
- v1.6.0:服务端生产加固(请求限流 + waitress + SQLite 连接池)+ App 端加密修复(randomIv)+ 组件交互完善(建表自动生成示范数据等)
- v1.5.3:UTS 插件方法 App 端 Promise 桥接修复(裸 return 同构写法)+ data 序列化(UTSJSONObject → JSON)
- v1.5.2:写入大小限制三层防线(插件预校验 + 组件预检查 + 服务端纵深防御)
- v1.5.1:彻底 Token 化(移除平台 API Key,注册/登录公开,全部操作强制登录)
- v1.5.0:多租户(用户注册/登录 + Token + 库 owner 隔离 + 配额)
- v1.2.0:加密等级可选(一级=存储明文可模糊查询 / 二级=库内密文),支持一键切换
- v1.1.0:写死连接(零配置)+ 数据库密码 + 文本端到端加密(AES-256 + HMAC)
- v1.0.0:HTTP 全链路(建库/建表/字段/主键/SQL/增删改查)+ 配置组件 + 服务端

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 2
赞赏 0
下载 12565684
赞赏 1949
赞赏
京公网安备:11010802035340号