为什么先盘点再检查
数据库是内网里数据价值最集中的资产,盘点也最容易失真:应用配置文件、开发自建实例、测试库常常同时存在。盘点输出应包含实例与端口、版本与补丁状态、认证方式与账号体系、网络可达范围、数据分级与合规标签五项;字段齐了再进入配置与权限检查,结论才有覆盖面。
基本信息
| 盘点对象 | MySQL/MariaDB、PostgreSQL、SQL Server、Oracle、Redis、MongoDB 等 |
|---|---|
| 常用端口 | 3306、5432、1433、1521、6379、27017(均可被改) |
| 数据来源 | 主机端口扫描 + 应用连接配置 + 管理员确认 |
| 重点对象 | 对外可达实例、使用弱配置实例、含个人数据实例 |
典型使用场景
- 内网评估第一步:确定数据资产总量与分布
- 排查开发自建实例与测试库绕过统一运维的情况
- 梳理应用的数据库账号权限,识别高权限业务账号
- 评估数据分级与合规标签是否与实际存储内容一致
- 为备份与日志留存检查提供实例清单基础
盘点示例(授权范围内)
盘点示例(授权范围内)
ss -lntp | grep -E '3306|5432|1521|1433|6379|27017' # 在主机上列监听实例(需主机登录权限)
grep -rIn 'jdbc:\|mysql://\|redis://' /opt/apps --include='*.yml' --include='*.properties' | head # 从应用配置找连接串线索(只记位置不回显口令)
mysql --defaults-file=/etc/app.cnf -e 'SELECT VERSION(); SHOW DATABASES;' # 用只读账号确认版本与库清单盘点字段与来源
| 字段 | 说明 | 采集方式 |
|---|---|---|
| 实例与端口 | 含备用与只读实例 | 主机扫描 + 管理员核对 |
| 版本与补丁 | 决定已知风险与升级窗口 | SQL 查询版本 + 补丁记录 |
| 账号体系 | 应用账号、运维账号、超级账号 | 权限表导出 |
| 可达范围 | 哪些网段与人员能连 | 防火墙策略 + 实测 |
| 数据分级 | 是否含个人数据与敏感字段 | 业务访谈 + 表结构抽样 |
应用配置文件里的连接串是盘点捷径,但只用于定位实例,不要读取或回显口令值;需要连接验证时改用管理员提供的只读账号。
默认端口可以改,只按 3306/6379 这类固定端口判断会漏掉大量实例;同时 Redis、MongoDB 等常被用于内部缓存与日志,未必出现在 DBA 台账里。