Files
opsxdb/homepage/dist/docs/security/index.html
T

180 lines
8.4 KiB
HTML

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>安全设计 · OpsxDB 文档</title>
<meta name="description" content="OpsxDB 桌面数据库工作台用户文档 — 连库、写 SQL、看结果;MySQL / PostgreSQL / SQL Server / Oracle / SQLite / Redis 内置驱动,SSH 隧道与 SSL 加密。">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%2264%22%20y2%3D%2264%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23059669%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%2206B6D4%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2214%22%20fill%3D%22url(%23g)%22%2F%3E%3Cg%20stroke%3D%22%23fff%22%20stroke-width%3D%224.5%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%3E%3Cellipse%20cx%3D%2232%22%20cy%3D%2220%22%20rx%3D%2215%22%20ry%3D%226.5%22%2F%3E%3Cpath%20d%3D%22M17%2020v24c0%203.6%206.7%206.5%2015%206.5s15-2.9%2015-6.5V20%22%2F%3E%3Cpath%20d%3D%22M17%2032c0%203.6%206.7%206.5%2015%206.5s15-2.9%2015-6.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
<link rel="stylesheet" href="/docs/assets/docs.css">
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
<symbol id="i-menu" viewBox="0 0 24 24"><path d="M4 5h16"/><path d="M4 12h16"/><path d="M4 19h16"/></symbol>
<symbol id="i-printer" viewBox="0 0 24 24"><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><path d="M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6"/><rect x="6" y="14" width="12" height="8" rx="1"/></symbol>
<symbol id="i-thumbs-up" viewBox="0 0 24 24"><path d="M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z"/><path d="M7 10v12"/></symbol>
<symbol id="i-thumbs-down" viewBox="0 0 24 24"><path d="M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z"/><path d="M17 14V2"/></symbol>
</svg>
<header class="topbar">
<div class="topbar-inner">
<button class="menu-btn" id="menu-btn" aria-label="打开导航"><svg class="i"><use href="#i-menu"/></svg></button>
<a class="brand" href="/docs">
<span class="brand-logo"><svg width="28" height="28" viewBox="0 0 64 64" aria-label="OpsxDB"><defs><linearGradient id="lg-docs" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#059669"/><stop offset="1" stop-color="#06B6D4"/></linearGradient></defs><rect width="64" height="64" rx="14" fill="url(#lg-docs)"/><g stroke="#fff" stroke-width="4.5" fill="none" stroke-linecap="round"><ellipse cx="32" cy="20" rx="15" ry="6.5"/><path d="M17 20v24c0 3.6 6.7 6.5 15 6.5s15-2.9 15-6.5V20"/><path d="M17 32c0 3.6 6.7 6.5 15 6.5s15-2.9 15-6.5"/></g></svg></span>
<span class="brand-name">OpsxDB <em>文档</em></span>
</a>
<span class="ver-badge">v0.1</span>
<div class="search">
<input id="search-input" type="search" placeholder="搜索文档…" autocomplete="off" spellcheck="false">
<div class="search-panel" id="search-panel" hidden></div>
</div>
<nav class="top-links">
<a href="/home">官网</a>
<a href="/docs/quickstart">快速开始</a>
</nav>
</div>
</header>
<div class="layout" id="layout">
<aside class="sidebar" id="sidebar">
<div class="nav-group">
<div class="nav-group-title">开始使用</div>
<a class="nav-link" href="/docs/intro">产品介绍</a>
<a class="nav-link" href="/docs/quickstart">快速开始</a>
<a class="nav-link" href="/docs/interface">界面导览</a>
</div>
<div class="nav-group">
<div class="nav-group-title">连接与驱动</div>
<a class="nav-link" href="/docs/connect">新建连接</a>
<a class="nav-link" href="/docs/drivers">驱动支持</a>
</div>
<div class="nav-group">
<div class="nav-group-title">SQL 工作台</div>
<a class="nav-link" href="/docs/workbench">SQL 工作台</a>
<a class="nav-link" href="/docs/results">结果与导出</a>
<a class="nav-link" href="/docs/redis">Redis 工作台</a>
</div>
<div class="nav-group">
<div class="nav-group-title">安全与 AI</div>
<a class="nav-link active" href="/docs/security">安全设计</a>
<a class="nav-link" href="/docs/ai">AI 助手</a>
</div>
<div class="nav-group">
<div class="nav-group-title">参考</div>
<a class="nav-link" href="/docs/faq">常见问题</a>
<a class="nav-link" href="/docs/shortcuts">快捷键</a>
</div>
<div class="sidebar-foot">© 2026 OpsxDB · 本地优先的数据库工作台</div>
</aside>
<main class="content">
<div class="breadcrumb">文档 <span>/</span> 安全与 AI <span>/</span> 安全设计</div>
<h1 class="page-title">安全设计</h1>
<div class="page-meta">更新于 2026-09-20</div>
<article class="md">
<p>连生产库的工具,安全必须是默认项。OpsxDB 的安全设计围绕一句话:<strong>数据不出你的机器。</strong></p>
<h2 id="sec-1">本地优先</h2>
<ul>
<li>连接配置、查询历史、主题偏好全部保存在本机;</li>
<li>无账号体系、无遥测、无云端同步;</li>
<li>后端默认只监听 <code>127.0.0.1</code>,对外服务需要显式配置(<code>OPSXDB_BIND_PUBLIC=1</code> 或 <code>OPSXDB_ADDR</code>)。</li>
</ul>
<h2 id="sec-2">凭据保护</h2>
<table>
<thead>
<tr>
<th>层面</th>
<th>机制</th>
</tr>
</thead>
<tbody>
<tr>
<td>存储</td>
<td>连接密码在本机混淆存储,不落明文</td>
</tr>
<tr>
<td>传输</td>
<td>连接建立后,后续查询只携带 <code>sessionId</code>,账密不再每次上送</td>
</tr>
<tr>
<td>会话</td>
<td>会话在服务端维护,可主动关闭(连接断开即失效)</td>
</tr>
</tbody>
</table>
<h2 id="sec-3">加密通道</h2>
<p><strong>SSL / TLS</strong>:每个连接可独立开启;数据库支持 TLS 即可启用(MySQL、PostgreSQL、SQL Server、Redis、MongoDB 均支持)。</p>
<p><strong>SSH 隧道</strong>:数据库在跳板机后时,配置 SSH 字段组,OpsxDB 先建隧道再转发数据库连接 —— 库端口不必暴露公网。</p>
<h2 id="sec-4">危险操作防护</h2>
<ul>
<li>DROP / TRUNCATE 执行前确认;</li>
<li>无 WHERE 的 UPDATE / DELETE 执行前确认;</li>
<li>结果集按阈值截断,避免误操作拖垮界面。</li>
</ul>
<h2 id="sec-5">内网部署形态</h2>
<p>单二进制 + 内置静态页(官网 / 文档 / 工作台),无外部依赖:</p>
<ul>
<li>任意内网主机可部署;</li>
<li>无外联请求,可在纯内网环境运行;</li>
<li>升级即替换一个二进制。</li>
</ul>
</article>
<div class="pn-nav">
<a class="pn prev" href="/docs/redis"><span class="pn-label">← 上一页</span><span class="pn-title">Redis 工作台</span></a>
<a class="pn next" href="/docs/ai"><span class="pn-label">下一页 →</span><span class="pn-title">AI 助手</span></a>
</div>
<div class="feedback" id="feedback">
<span class="feedback-q">本页内容是否对您有帮助?</span>
<button class="fb-btn" data-v="yes"><svg class="i"><use href="#i-thumbs-up"/></svg> 有帮助</button>
<button class="fb-btn" data-v="no"><svg class="i"><use href="#i-thumbs-down"/></svg> 没有帮助</button>
<span class="fb-thanks" id="fb-thanks" hidden>感谢您的反馈!</span>
</div>
</main>
<aside class="toc">
<div class="toc-title">本页目录</div>
<nav class="toc-nav">
<a class="toc-l2" href="#sec-1">本地优先</a>
<a class="toc-l2" href="#sec-2">凭据保护</a>
<a class="toc-l2" href="#sec-3">加密通道</a>
<a class="toc-l2" href="#sec-4">危险操作防护</a>
<a class="toc-l2" href="#sec-5">内网部署形态</a>
</nav>
<button class="print-btn" id="print-btn"><svg class="i"><use href="#i-printer"/></svg> 打印 / 导出 PDF</button>
</aside>
</div>
<script src="/docs/assets/docs.js" defer></script>
</body>
</html>