DB CONSOLE
浏览和查询你自己的数据库—— 每一次更改下面都有一张安全网。
数据库是程序存放事实的地方——用户、订单、设置、历史。 Enclave DB Console 是用来查看它内部的工作台:它的表、它的行、 它的结构,以及它自己的语言 SQL。它最初是为本机构自己的管理 工作做的一个小工具,而独立版完整保留了那个工具的灵魂: 它替你找到你的数据库,它在写入之前先备份,它阻止 每一次更改,直到管理员点头为止。
地球上每一个数据库工具都会在凌晨三点高高兴兴地运行你 一生中最糟糕的一条查询。DB Console 把"你自己最糟的 时刻"当作一个设计场景。它以只读方式启动,让你在 每项更改运行之前先审核,在任何写入落地之前先复制数据库, 并让真正危险的语句难以被误触。
🔌 两种数据库——把它指向你的那一个
- SQLite——一个文件就是一个数据库。 直接打开一个,或者让控制台替你找:你批准它可以查看的 文件夹,它检查每个候选文件的身份头部,确认它确实是一个 SQLite 数据库,然后把找到的每一个列出来——连同它的大小 和表的数量——即使它在两个地方出现,也只列一次。它只查看 你批准过的文件夹;这个程序出厂时不认识任何文件夹。
- PostgreSQL——一个服务器就是一个数据库。 填一张简短的表格:服务器地址、端口、数据库名、你的用户名。 地址栏出厂时是空的——它保存的第一个地址 永远是你亲手输入的那个——而且它建立的连接是真实的, 连向你指名的那台服务器。
你保留的连接按名字保存,用你自己的话命名。保存的连接 记住的是路线——地址、端口、用户名、文件路径——永远 不记密码:保存的代码本身会在列表落盘之前剥掉任何 形状像密码的东西。密码只住在一个地方:下面的保险库。
👀 四处看看——树、网格、结构
- 架构树——数据库的大纲:它的表和视图, 每一个展开后显示它的列。先看地图,再动手。
- 数据网格——一张表的行,每页 50 行。
点击列标题按它排序;搜索框一次在所有列里找你的词。
空单元格显示为 NULL,二进制数据显示为
像
[blob 12B]这样的直白标签——是什么就 显示什么,绝不猜测。 - 结构视图——把一张表拆开看:每一列 连同它的类型和默认值、主键、两个方向上把它与其他表 连接起来的外键、它的索引,以及这张表真实的 CREATE 语句,可读又可复制。
看,不会改变任何东西。你可以浏览一整天,数据库根本 不会知道你来过——这就是只读的意思,而这正是你启动时的 状态。
⌨️ SQL 编辑器
编写 SQL——数据库自己的语言——然后运行全部内容,或者 只运行你选中的部分。答案落入一个结果网格,结果可以导出 为你自己磁盘上的 CSV 或 JSON 文件。一个问题可能匹配一百万行;网格显示前 500 行, 并且会明说——被截断的答案会被标为截断, 绝不会悄悄修剪得看起来完整。
读取语句直接运行。更改语句不会——INSERT、 UPDATE、DELETE 或 DROP 在你按下运行后不会执行。它会进入 待定更改托盘,安全系统从那里接手。那次绕道不是拒绝; 那是产品按设计在工作。
🛡️ 安全系统——重头戏
- 默认只读——金色边框。 每个连接都以只读方式开始,窗口边框随时用颜色显示模式: 金色表示只读——看一切,改不了任何东西; 红色边缘表示可写——你亲自切换的连接, 逐个连接,都会被记住。你在房间另一头就能看出自己的 危险等级。
- 待定更改托盘。 更改汇集在一个托盘里,它用将要运行的原样 SQL 向你展示 每一条即将执行的语句——边框里还有一个实时计数器。 Commit(提交)运行托盘; Discard(丢弃)把它扔掉,数据库连听都 不会听到。当有更改待定时关闭窗口,控制台会点名问你 如何处置它们。
- 写入前备份。当你按下
Commit 时,第一个动作不是更改——是复制。一个 SQLite
数据库在任何语句执行之前被完整复制到一个带
时间戳的
.bak文件,所以即使写入随后 中途失败,备份也已经存在;保留最新的十个。一次糟糕的 写入永远可以撤销:把备份放回去,你就回到了原地。 - 守卫。一条没有 WHERE 的 DELETE 或 UPDATE 在提交前会得到一个 大白话的拦截:这将更改表中的每一行。 DROP 或 TRUNCATE 保持未武装状态,直到你 输入表的准确名称来武装 Commit——没有 哪个复选框能被误点勾上——而且这道守卫住在控制台的 核心里,不只是在按钮上,所以未武装的 DROP 无论走哪条 路都无法提交。
🔐 保险库——密码住的地方
密码在任何地方都不是明文——不在保存的列表里,不在 日志里,输入之后也不在屏幕上。它们住在一个加密 保险库里:你自己电脑上的一个文件,用你选的 主密码封存。主密码本身从不保存——忘了它, 保险库就保持封存;这不是设计缺陷,这就是设计。 用大白话说,封存过程把你的密码通过一台单向磨坊碾 600,000 次来生成密钥,然后用 AES-GCM——标准认证加密—— 封存秘密:改动密封文件的一个比特,它就不会打开, 而不是打开错。保险库文件只锁定到你自己的账户(权限 0600),密码错了会大声失败,并且有一个内置的后备方案, 在缺少标准加密库的系统上也能封存保险库——这个程序里 没有任何一条路会以密码可读地躺在磁盘上收场。
⚖️ 诚实的限制
- 今天只有两种引擎。这个版本会说 SQLite 和 PostgreSQL。MySQL 和 MariaDB 在后续阶段的 计划里——它们不在这个版本里,这一页不会假装它们在。
- 更改靠写,不靠点。在这个阶段,你 通过在编辑器里编写 SQL 来更改数据;点一点就能改行的 表单是后续阶段的工作。安全系统是有意先建的。
- 备份副本是一个文件的故事。带时间戳
的
.bak保护的是 SQLite 数据库,也就是 文件。对于 PostgreSQL 服务器,安全网是只读默认值、 审核托盘和守卫——直说,因为假装服务器存在文件副本, 会是一个带进度条的谎言。 - 小窗口,已在 1.0 中修复。早期的 测试版本在窄窗口(800 像素宽)上可能会裁掉网格的 分页按钮,在矮窗口(600 像素高)上会挤压架构树。 1.0 版为小窗口重新设计了布局,并在全部六种语言下以 1024×600 和 800×600 进行了验证运行——树行、分页按钮、 Commit 和 Discard 全部在屏幕上。
- 在测试数据库上证明。上面的每一项 保护都对着专门搭建的测试数据库证明过——37 项核心检查 电池在这个确切的发布版本上通过,窗口也在全部六种 语言下以 1024×600 和 800×600 进行了验证运行。这个程序 在测试中从未指向过一个真正的工作数据库,这是有意的。
🔒 你的机器,你的业务
没有账户,没有遥测,没有更新检查——控制台从不向任何人 回报。它唯一的网络流量是你定义的连接, 在你连接时通向你自己的数据库服务器。在这个版本被允许 出门之前,它的内部被逐字扫描过:它不包含任何 内置地址——没有我们的,也没有任何人的。它保留的 一切——保存的连接、保险库、你的导出——都住在你自己机器 上的普通本地文件里,可导出、可删除,是你的。
⬇️ 下载
🐧 程序——Linux
版本 1.0 · Linux · 24 MB · 无需安装:解压,
打开文件夹,运行 ./DBConsole。整个控制台会说
English、Español、Deutsch、中文、日本語和 isiZulu——在窗口
左上角选择你的语言,它会记住。
由 777 Software 制作——永久免费——777software.net ·
SHA-256(tarball):d4a185d280d13cd9f47474c833ed462b2e1178850eb754364e12cc261382b685
永久免费。DB Console 是一个系统管理 工具,我们不向人们收取用我们的工具保护自己的费用。 没有价格,没有试用,没有高级层级——今天不会,永远不会。
像每一个 777 Software 程序一样,先为 Linux 构建。Windows 版将源自同一个经过 证明的版本。
📖 手册 (PDF)
DB Console 做什么、如何操作它的完整图景——就是程序 测试时所依据的那本手册。
DB Console — How It Works (PDF)(英文版)
程序手册——连接到你的 SQLite 和 PostgreSQL 数据库,树、网格和结构视图,SQL 编辑器,默认只读,待定更改托盘,写入前备份,守卫,保险库,以及诚实的限制。8 页 · SHA-256: c8dfb6cf83f87e4fd6beb65d3bc5fc04508fd10c80a8bd4be57ead0b061c08e6
777 Software · 创始人与架构师: Steven Jesse · 首席助理架构师: Charles Burnett · 主页 · 条款 · 图库
✉️ 来排队
每一个发布都先落到队伍里——落地的那一分钟。在 Substack 免费排队,并在 X 上关注我们。永远免费,随时退订,我们从不出售任何名字。还有一个诚实的设计选择:本站没有电子邮件表单——我们不保存任何自己的名单,也就没有可泄露或丢失的名单。队伍就住在 Substack,这是刻意的。