返回博客列表
数据库权限管理混乱?三步建立规范的数据库访问控制流程
SQLDEV 团队 • 2026年3月3日
权限管理访问控制数据库安全
关键词:数据库权限管理、数据库访问控制、数据库堡垒机、数据库安全管理
引言
你的公司是不是这样管理数据库权限的:
- 开发、测试、运维共用一个数据库账号
- root 密码写在项目配置文件里,所有人都知道
- 新员工入职直接给全库权限,离职了也没人回收
- 想查谁在什么时候执行了什么 SQL,查不到
如果中了两条以上,恭喜你,你的数据库权限管理和大多数公司一样——基本没有管理。
这不是个小问题。2024 年,国内多家企业因为数据库权限失控导致数据泄露,轻则罚款,重则业务停摆。《数据安全法》和等保 2.0 都对数据库访问控制有明确要求。
今天聊聊怎么用三步建立一个规范的数据库权限管理体系。
第一步:收权——砍掉所有直连
问题根源:直连
大多数权限混乱的根源是同一个——开发和运维可以用 Navicat、DBeaver 等客户端直接连接生产数据库。
一旦能直连,就意味着:
- 你无法控制他执行什么 SQL
- 你无法知道他看了什么数据
- 你无法在事后追溯操作记录
解决方案:数据库堡垒机
把所有数据库的直连通道关掉,所有访问必须通过数据库堡垒机进行:
以前:开发 → Navicat → 生产数据库(无管控)
现在:开发 → SQLDEV(堡垒机)→ 生产数据库(全程管控)
在网络层面:
- 数据库只允许堡垒机 IP 访问(修改安全组/防火墙规则)
- 关闭数据库的外网访问
- 所有人通过堡垒机的 Web 界面或终端操作数据库
这一步是基础中的基础。 没有这一步,后面的权限管理都是空谈。
第二步:分权——最小权限原则
角色定义
| 角色 | 权限范围 | 典型操作 |
|---|---|---|
| 开发 | 测试库读写,生产库只读 | SELECT |
| 测试 | 测试库读写 | SELECT, INSERT, UPDATE |
| DBA | 所有库读写 + DDL | 全部,但需要审批 |
| 管理员 | 用户管理 + 审批 | 审批工单、管理权限 |
| 只读账号 | 指定库只读 | SELECT |
关键原则
1. 生产库开发只读
开发人员在生产环境只能执行 SELECT,且只能访问与自己项目相关的库。想修改数据?走工单。
2. 敏感字段脱敏
即使是 SELECT,包含手机号、身份证、银行卡号的字段也应该自动脱敏:
-- 开发看到的查询结果
| name | phone | id_card |
|--------|---------------|----------------------|
| 张三 | 138****5678 | 320106****1234 |
3. 按项目/库隔离
A 项目的开发不能看到 B 项目的数据库。在 SQLDEV 中可以用项目维度管理权限,开发只能看到自己被授权的实例和库。
4. 临时权限有有效期
如果开发需要临时查生产数据,走权限申请工单,审批后自动授权,到期自动回收。不要给永久权限。
SQLDEV 中的实现
- 创建角色模板(开发、测试、DBA、只读)
- 为每个角色配置可访问的数据库实例和库
- 配置数据脱敏规则(手机号、身份证、银行卡号等)
- 开发申请权限走工单,DBA 审批后自动生效
- 设置权限有效期,过期自动回收
第三步:审计——所有操作留痕
需要记录什么
| 审计项 | 内容 |
|---|---|
| 登录审计 | 谁在什么时间从什么 IP 登录了系统 |
| SQL 审计 | 执行了什么 SQL,在哪个库,返回了多少行 |
| 导出审计 | 谁导出了数据,导出了哪些字段,多少条 |
| 权限变更 | 谁的权限被修改了,谁操作的 |
| 工单审计 | 工单的完整生命周期(提交→审核→审批→执行) |
审计日志要求
- 不可篡改:操作者无法删除或修改自己的审计记录
- 可检索:支持按人、按时间、按数据库、按 SQL 类型查询
- 可导出:满足合规检查时的导出需求
- 保留时间:至少 180 天(等保要求)
SQLDEV 的审计能力
- Web SQL 查询全程记录(SQL + 结果行数 + 耗时)
- SSH 终端操作录屏回放(.cast 格式,可在 Web 端回放)
- 高危命令实时告警(如
rm -rf、DROP TABLE) - 操作日志不可由操作者删除
- 支持日志导出为 Excel/PDF
落地路线图
| 阶段 | 时间 | 动作 |
|---|---|---|
| 第 1 周 | 部署堡垒机 | 部署 SQLDEV,配置数据库实例连接 |
| 第 2 周 | 收权 | 关闭数据库外网访问,所有访问走堡垒机 |
| 第 3 周 | 分权 | 创建角色,分配权限,配置脱敏规则 |
| 第 4 周 | 审计 | 确认审计日志正常记录,配置告警规则 |
| 持续 | 优化 | 根据实际使用反馈调整权限和规则 |
四周时间,一个人就能搞定。
总结
数据库权限管理的核心就三件事:
- 收权 —— 切断直连,所有访问走堡垒机
- 分权 —— 最小权限原则,按角色按项目分配
- 审计 —— 所有操作留痕,不可篡改
不复杂,但很多团队就是不做。直到出事了才发现,没有流程的代价远比建立流程的成本高。
SQLDEV 社区版免费下载,支持 30+ 种数据库的统一管控: https://www.sqldev.info
本文首发于 SQLDEV 官方博客。更多数据库安全管理实践,请关注我们。
