更新记录

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 头,仅内存使用、不落盘)。若需"平台完全不接触明文",请选择二级。

安全模型

  1. 数据库密码:建库时设置,服务端只存 PBKDF2(密码, 随机盐) 哈希——即使数据库文件被拖走也无法反推密码。
  2. 客户端加密传输:两个等级下文本字段均在客户端用 AES-256-CBC 加密后传输(密钥 = PBKDF2(密码, 服务端盐值, 10000),附 HMAC-SHA256 完整性校验),网络上传输的均为密文。
  3. 二级库内密文:服务器不解密直接存储,平台无法读取明文;密码丢失 = 数据永久无法解密。
  4. 一级库内明文:服务器解密后存储明文,支持模糊查询;密钥不落盘,但库内数据平台技术上可读——请按数据敏感度选择。
  5. 二级加密列限制:加密后的文本列不能用于 SQL 等值/模糊匹配(如 WHERE name='张三' 无效),请用主键/数值列定位记录——需要模糊查询时请选择一级加密。

注意事项(重要)

  1. 小程序网络限制:微信/支付宝小程序要求服务器为 HTTPS + 备案域名,且需在小程序后台配置 request 合法域名。纯 IP + HTTP 直连仅 App/H5 可行。
  2. 服务器地址:插件内置云端服务地址(ZXBCloudDB.serverUrl 静态属性),开箱即用,无需自己部署服务器。需要私有部署时,用插件市场附件里的服务端部署到自己的服务器,再修改该地址(App 真机调试可用局域网 IP)。
  3. 鉴权:v1.5.1 起无平台 API Key,客户端只需登录(Token 自动携带);服务器 config.pyAPI_KEY 字段保留备用。
  4. 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/增删改查)+ 配置组件 + 服务端

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无。插件仅通过 uni.request 访问 HTTPS 云端接口(连接 ZXB-CloudDB 云数据库服务),不申请相机、相册、定位、麦克风、存储、通讯录等任何系统权限。App 端联网所需的 INTERNET 权限由 uni-app 项目默认声明。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

1. 采集数据:用户注册/登录时提交的用户名与密码——密码经 PBKDF2 加盐哈希后存储于服务端(https://www.zxbcloud.cn,443 端口反向代理),服务端不保存密码明文,也无法反推加密密钥。 2. 业务数据:用户存入云数据库的记录文本,在客户端以 AES-256-CBC + HMAC-SHA256 加密后上传(端到端加密),服务端只存储密文、不解析内容。 3. 不采集设备信息、位置、通讯录等任何隐私数据;服务器地址仅用于请求云数据库 API(/api/*)。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。