自 v3.0.0 版本开始,NextTerminal 集成了协议级的 MySQL 数据库审计能力,这项功能为数据库操作引入了企业级的安全管控流程,尤其适合需要满足安全合规要求或希望防范误操作风险的团队。
核心功能特性
新增的数据库审计模块具备以下几个关键特性:
- 协议级拦截:直接在 SQL 协议层面进行拦截,能准确识别 DML(数据操作语言,如 INSERT、UPDATE、DELETE)和 DDL(数据定义语言,如 CREATE、ALTER、DROP)语句。
- 查询语句放行:所有 SELECT 查询语句默认放行,确保日常的查询、分析工作不受任何影响,保持业务流畅性。
- 强制工单审批:对于可能改变数据或结构的 DML/DDL 操作,系统会强制要求通过工单流程进行审批,未经批准的变更无法执行。
- 完整操作日志:系统会详尽记录每一条 SQL 语句的执行情况,形成完整的审计日志,便于事后追溯与定责。
配置启用步骤
1. 启用数据库代理
首先,你需要进入系统的“系统设置”菜单,找到“数据库代理”配置项并将其开启。启用后,NextTerminal 会作为一个中间代理,监听指定的端口(例如 3307),所有客户端的数据库连接都将通过此代理进行。

界面上提供了客户端连接示例以及数据库密码的生成指引,配置完成后点击“提交”保存。
2. 添加数据库资产
接下来,你需要在“资产管理”->“数据库资产”中添加需要被审计的数据库。点击“新建”,填写目标数据库的连接信息,包括名称、类型(如 MySQL)、主机地址、端口、具体的数据库名、用户名和密码等。

这里也支持通过网关进行连接,适用于数据库位于内网或特定网络环境下的场景。配置完成后保存,该数据库资产即纳入审计管理范围。
日常使用与操作流程
连接与查询
配置完成后,你可以使用任何 MySQL 客户端工具(如 Navicat、MySQL Workbench、命令行客户端等)进行连接。注意,连接的主机和端口应填写 NextTerminal 数据库代理的地址和端口,用户名和密码则使用你在个人中心生成的授权令牌信息。
连接成功后,执行所有的 SELECT 查询语句都将畅通无阻,与直连数据库体验一致。
执行变更与触发工单
当你尝试执行一条 UPDATE、DELETE 或 CREATE TABLE 等变更语句时,操作将被 NextTerminal 代理拦截。

此时,客户端通常会收到一个错误或提示,告知该操作需要审批。真正的执行流程需要转向 Web 管理界面中的工单系统。
工单审批流程详解
发起 SQL 工单
当变更操作被拦截后,你应该登录 NextTerminal Web 界面,进入“SQL 工单”模块,点击“新建工单”。

在弹窗中,选择对应的数据库资产、目标数据库,并完整填写需要执行的 SQL 语句。“执行原因” 字段务必认真填写,这是审批人判断是否通过的重要依据。填写完毕后提交,工单状态将变为“待审批”。
审批与自动执行
具有审批权限的管理员可以在“SQL 工单”列表看到待处理的工单。管理员可以查看工单的详细信息,包括 SQL 语句和执行原因。

管理员可以选择“审批通过”或“拒绝”。一旦工单被审批通过,系统会自动在后台执行该 SQL 语句,并将执行结果(成功或失败,以及影响行数)更新在工单记录中,申请人也会得到相应的通知。
审计日志追溯
所有通过代理执行的 SQL 语句,无论是否被拦截,都会被详细记录在“SQL 日志”中。这是运维审计和安全调查的核心依据。

日志信息非常全面,包括:
- 数据库资产:操作发生在哪个数据库。
- 用户:执行操作的用户是谁。
- 来源:该操作是来自“工单”还是直接“代理”连接(如查询)。
- 状态:执行“成功”还是“失败”。
- 耗时:SQL 执行所花费的时间。
- 影响行数:变更操作影响了多少行数据。
- 完整 SQL:执行的原始 SQL 语句。
- 创建时间:执行发生的时间戳。
管理员可以通过条件筛选快速定位特定的操作记录,实现精准溯源。
总结:带来的安全价值
通过上述功能,NextTerminal 的数据库审计模块为企业数据库管理带来了切实的安全提升:
- ✅ 严防误操作:通过拦截和审批,从根本上避免了因手误、脚本错误导致的误删、误更新等数据事故。
- ✅ 实现权限隔离:开发或分析人员可以自由查询数据,但无法直接修改,实现了查询权与修改权的分离,符合最小权限原则。
- ✅ 操作全程可追溯:每一次数据变更都有据可查,谁、在什么时候、为什么、执行了什么操作,一目了然。
- ✅ 满足合规要求:完善的审批流程和审计日志,能够满足国内外众多行业对数据安全与操作合规的硬性要求。
对于正在寻找开源堡垒机与数据库审计一体化解决方案的团队来说,NextTerminal v3.0.0 的这个新特性值得深入尝试。如果你想了解更多类似的运维安全工具实践,欢迎在 云栈社区 交流讨论。