navicat 17 在 windows 沙盒中无法保存配置,因其依赖的加密数据库 navicat15.db 写入 %appdata% 路径受沙盒临时账户、无持久存储及 sid 绑定密钥机制限制,所有配置均重启即失。

为什么 Navicat 17 的配置文件写入会静默失败
Navicat v15+ 使用加密 SQLite 数据库 navicat15.db 存储连接配置,该文件硬编码写入 %appdata%PremiumSoftNavicat。但在 Windows Sandbox 中:
-
%appdata%实际映射到一个临时内存卷(如C:UsersWDAGUtilityAccountAppDataRoaming),重启沙盒即销毁 - 沙盒默认以
WDAGUtilityAccount身份运行,该账户无权向系统级路径(如C:Program Files)或注册表写入,也未预配任何用户配置目录结构 - 即使你手动创建了
PremiumSoftNavicat文件夹,navicat15.db的 AES-256 加密密钥与当前用户 SID 强绑定,沙盒每次启动都是全新 SID,导致解密失败 → 连接列表为空,且无法恢复
“保存查询”或“备份路径”能设但不生效的真相
你在 Navicat 图形界面里成功设置了“查询文件保存路径”或“备份路径”,不代表这些路径真能落盘:
- 若路径指向
C:UsersWDAGUtilityAccountDocuments等用户目录:沙盒允许写入,但退出即丢弃 - 若路径指向
D:或网络共享(如\hostshare):沙盒默认**禁用驱动器挂载和网络访问**,除非显式配置 .wsb 文件启用 - 报错 “Access is denied” 或 “The system cannot find the path specified” 往往是路径存在但权限/上下文不匹配,而非磁盘空间或路径语法问题
想在沙盒里用 Navicat?绕过配置保存的实操方案
接受沙盒的“一次性”本质,不依赖持久化配置:
- 用命令行参数启动 Navicat,跳过 UI 配置加载:
Navicat.exe --no-sandbox-config(部分版本支持,可试;若无效则忽略) - 把连接信息写成 SQL 脚本或 JSON 模板,每次进沙盒后用 “文件 → 打开连接” 导入已导出的
.ncx连接文件(该格式不加密,可跨环境) - 备份任务改用纯命令行:在沙盒内安装 MySQL 客户端,直接调用
mysqldump,输出重定向到C: emp(沙盒保证该路径可写) - 如需长期复用,不要在沙盒内操作配置,而是在宿主机配置好后,用
Export Connections导出为.ncx,再复制进沙盒使用











