# dbaauth **Repository Path**: hoyin2020/dbaauth ## Basic Information - **Project Name**: dbaauth - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-13 - **Last Updated**: 2026-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据库权限审计系统 本系统用于批量并行抓取多台不同种类数据库的权限信息,并将结果存储到统一的MySQL数据库中。 ## 项目结构 ``` DbaAuth2/ ├── audits/ # 审计模块文件夹 │ ├── oracle_privilege_audit.py # Oracle数据库权限审计 │ ├── mysql_privilege_audit.py # MySQL数据库权限审计 │ ├── oceanbase_oracle_privilege_audit.py # OceanBase Oracle模式权限审计 │ ├── polardb_privilege_audit.py # PolarDB数据库权限审计 │ ├── adbpg_privilege_audit.py # ADBPG数据库权限审计 │ ├── oceanbase_mysql_privilege_audit.py # OceanBase MySQL模式权限审计 │ ├── doris_privilege_audit.py # Doris数据库权限审计 │ ├── dm_privilege_audit.py # DM (达梦) 数据库权限审计 │ ├── kingbase_privilege_audit.py # Kingbase数据库权限审计 │ ├── tbase_privilege_audit.py # TBase数据库权限审计 │ ├── postgresql_privilege_audit.py # PostgreSQL数据库权限审计 │ ├── batch_privilege_audit.py # 批量审计主程序(旧版本) │ └── README.md # 审计模块使用说明 ├── logs/ # 日志文件夹 │ └── README.md # 日志说明 ├── sql/ # SQL查询文件 │ ├── mysql/ # MySQL相关SQL │ ├── oracle/ # Oracle相关SQL │ ├── oceanbase_oracle/ # OceanBase Oracle相关SQL │ ├── oceanbase_mysql/ # OceanBase MySQL相关SQL │ ├── polarDB/ # PolarDB相关SQL │ ├── adbpg/ # ADBPG相关SQL │ ├── doris/ # Doris相关SQL │ ├── dm/ # DM相关SQL │ ├── kingbase/ # Kingbase相关SQL │ ├── tbase/ # TBase相关SQL │ ├── postgre/ # PostgreSQL相关SQL │ └── 统一审计表.sql # 统一审计表结构 ├── server_list.txt # 服务器列表配置文件 ├── batch_privilege_audit.py # 批量审计主程序(新版本) ├── db_executor.py # 数据库执行器 ├── test.py # 测试文件 └── README.md # 本文件 ``` ## 快速开始 ### 1. 配置服务器列表 编辑 `server_list.txt` 文件,每行配置一台服务器的连接信息: ``` 格式: dbtype|dbid|ip|port|dbname|dbuser 示例: oracle|1439|10.7.129.89|1521|nvsunuat|operation mysql|1|192.168.1.100|3306|mysql|root ``` 注意: 接口使用其他认证方式,无需配置密码 ### 3. 运行批量审计 ```bash # 使用默认配置运行 python batch_privilege_audit.py # 指定服务器列表文件 python batch_privilege_audit.py --server-list my_servers.txt # 设置最大并发数 python batch_privilege_audit.py --max-workers 4 # 设置超时时间(秒) python batch_privilege_audit.py --timeout 600 ``` ## 支持的数据库类型 | 数据库类型 | dbtype值 | 说明 | |----------|----------|------| | Oracle | oracle | Oracle数据库 | | MySQL | mysql | MySQL数据库 | | OceanBase Oracle | oceanbase_oracle | OceanBase Oracle模式 | | PolarDB | polardb | PolarDB数据库 | | ADBPG | adbpg | 阿里云ADBPG | | OceanBase MySQL | oceanbase_mysql | OceanBase MySQL模式 | | Doris | doris | Apache Doris | | DM (达梦) | dm | 达梦数据库 | | Kingbase | kingbase | 人大金仓数据库 | | TBase | tbase | 腾讯TBase数据库 | | PostgreSQL | postgresql | PostgreSQL数据库 | ## 命令行参数 ```bash python batch_privilege_audit.py [选项] 选项: --server-list TEXT 服务器列表文件路径 (默认: server_list.txt) --max-workers INT 最大并发数 (默认: CPU核心数) --timeout INT 单台服务器超时时间,单位秒 (默认: 30) --help 显示帮助信息 ``` ## 日志功能 系统会自动生成详细的日志文件,存储在 `logs/` 文件夹中: - 日志文件命名:`privilege_audit_YYYYMMDD_HHMMSS.log` - 包含详细的审计过程信息 - 记录成功、失败、超时等状态 - 便于问题排查和审计追踪 ## 数据存储 所有审计结果都存储在 `privilege_audit_unified` 表中,表结构请参考 `sql/统一审计表.sql`。 ## 特性 1. **批量并行处理**: 支持同时审计多台数据库,提高效率 2. **超时控制**: 为每台服务器设置独立的超时时间,避免长时间等待 3. **详细日志**: 自动生成日志文件,记录完整的审计过程 4. **错误处理**: 完善的异常处理机制,确保系统稳定性 5. **统计报告**: 提供详细的审计结果统计信息 6. **灵活配置**: 通过配置文件管理服务器信息,便于维护 ## 依赖要求 - Python 3.6+ - mysql-connector-python - requests (用于API调用) ## 安装依赖 ```bash pip install mysql-connector-python requests ``` ## 注意事项 1. 确保目标MySQL数据库已创建 `privilege_audit_unified` 表 2. 确保数据库用户有足够的权限执行审计操作 3. 根据网络环境和数据库性能调整超时时间 4. 建议根据机器性能调整并发数 5. 定期清理日志文件,避免占用过多磁盘空间 ## 故障排查 ### 连接问题 - 检查数据库连接参数是否正确 - 检查网络连接是否正常 - 检查防火墙设置 ### 超时问题 - 增加超时时间参数 - 检查数据库性能 - 检查网络延迟 ### 权限问题 - 检查数据库用户权限 - 检查目标MySQL数据库是否存在 - 检查表结构是否正确 ## 示例配置 ### server_list.txt 示例 ``` # 生产环境数据库 oracle|1001|192.168.1.100|1521|orcl|audit_user mysql|1002|192.168.1.101|3306|mysql|audit_user # 测试环境数据库 oracle|2001|192.168.2.100|1521|test|audit_user mysql|2002|192.168.2.101|3306|mysql|audit_user ``` ### 批量审计示例 ```bash # 审计生产环境(4个并发,10分钟超时) python batch_privilege_audit.py --server-list prod_servers.txt --max-workers 4 --timeout 600 # 审计测试环境(2个并发,5分钟超时) python batch_privilege_audit.py --server-list test_servers.txt --max-workers 2 --timeout 300 ``` ## 更新日志 ### v2.0 (2026-04-22) - 重新组织项目结构,将审计模块移到audits文件夹 - 添加server_list.txt配置文件支持 - 实现超时控制功能 - 添加详细日志记录功能 - 支持命令行参数配置 - 优化并发处理机制 ### v1.0 (2026-04-21) - 初始版本 - 支持11种数据库类型的权限审计 - 基本的批量处理功能 ## 联系方式 如有问题或建议,请联系系统管理员。