1、什么是DBMasker
DBMasker 是一个针对主流数据库系统的 Java 开源项目,旨在提供统一且安全的访问接口。它支持多种数据库,包括主流的关系型数据库(如 MySQL, Oracle, SQLite, PostgreSQL)以及国产数据库(如达梦、人大金仓、南大通用),还涵盖大数据仓库(如 HBase、Elasticsearch、Hive)。DBMasker 提供了易用的 Java API,包括元数据接口、数据接口、SQL生成接口和敏感数据处理接口,致力于为不同类型的用户带来一致、安全的数据库访问体验,使数据库管理、开发、安全和分析等工作更加高效便捷。
DBMasker 为数据库管理员、开发人员、数据安全专家、数据科学家和分析师等用户提供了便利,帮助他们轻松访问和管理多种数据库系统,实现敏感数据保护和隐私保护,同时支持高效的数据分析和挖掘。
DBMasker 目前支持的数据库类型:
数据库名 | 版本 | 支持情况 |
sqlite | v3 | ✓ |
达梦(DM) | v8 | ✓ |
人大金仓(KingBase) | v8 | ✓ |
南大通用(GBase) | 8a | ✓ |
南大通用(GBase) | 8s | ✓ |
南大通用(GBase) | 8t | ✓ |
神通 (Oscar) | v7 | ✓ |
hive | v2 | ✓ |
es (sql-jdbc) | v8 | ✓ |
hbase (Phoenix) | v1-v4 | ✓ |
mysql | v8 | ✓ |
mariodb | v10 | ✓ |
oceanbase | v2 | ✓ |
mssql | v13 | ✓ |
oracle | v11 | ✓ |
postgreSQL | v9 | ✓ |
2、特性优势
1、跨平台无缝对接
提供一种全面的Java访问接口,统一各类数据库平台的交互,实现跨平台操作的无缝对接。无论是关系数据库、大数据仓库还是新兴的数据库技术,DBMasker 都能够进行无缝整合。此外,DBMasker不仅仅停留于当前流行的数据库,还会积极适配和整合新的数据库技术,确保用户始终处于技术的前沿。
2、支持国产数据库
率先支持国产信创数据库的领导品牌,涵盖达梦、人大金仓、南大通用、神通等知名数据库。通过与国产数据库的深度整合,DBMasker 推动了信创软件的广泛应用和发展,助力我国的技术自主创新。除了支持国产数据库,DBMasker 还与国际主流数据库的兼容性,确保用户在多样化的应用场景下都能获得最佳的体验。
3、数据安全守护
数据安全在DBMasker中占据了核心地位。通过采用先进的数据脱敏技术,DBMasker确保了用户敏感数据在每一个传输、存储和处理阶段都得到了保护,从而满足多种信息安全标准和管理需求,为企业带来更加稳健的数据安全环境。
3、DBMasker与JDBC以及ORM框架的区别
JDBC:JDBC 提供基础的数据库访问功能,包括 SQL 执行和获取表信息等,但其在高级特性如分页查询、函数执行、批量 SQL 脚本执行以及动态数据脱敏等方面的支持不足。同时,JDBC 倾向于底层操作,可能需要开发者编写更多的代码来完成某些操作。
MyBatis/Hibernate:MyBatis/Hibernate等ORM框架为数据库访问提供高层抽象,支持定制SQL、存储过程,并将数据库记录映射为Java POJO,提升了开发效率和代码可维护性。但它们主要适用于单一数据库平台,跨平台工作和数据库切换可能带来大量的代码和配置调整。
DBMasker:DBMasker 提供通用的数据库平台管理,支持基础操作及针对数据库客户端和ETL工具的高级特性,如数据脱敏。与 ORM 框架不同,它不支持数据库记录与 Java POJO 的映射,更适合于工具而非业务系统开发。
特性 / 工具 | JDBC | MyBatis/Hibernate | DBMasker |
SQL 执行 | ✔️ | ✔️ | ✔️ |
获取表信息 | ✔️ | ✔️ | ✔️ |
分页查询 | ❌ | ✔️ | ✔️ |
函数执行 | ❌ | ✔️ | ✔️ |
批量 SQL 脚本执行 | ❌ | ❌ | ✔️ |
动态数据脱敏 | ❌ | ❌ | ✔️ |
敏感数据扫描 | ❌ | ❌ | ✔️ |
Java POJO 映射 | ❌ | ✔️ | ❌ |
跨平台工作 | ✔️ | ❌ | ✔️ |
代码与配置的灵活性 | ❌ | ❌ | ✔️ |
适用场景 | 更适合对数据库底层操作有高度控制需求的场景。 | 更适合需要数据库记录与 Java POJO 映射的业务系统开发场景。 | 更适合需要在多种数据库平台上操作,同时需要高级功能(如数据脱敏)支持的数据库工具开发。 |
4、用户场景
数据库管理员(DBA)和开发人员:DBMasker可用于开发支持多种数据库系统的客户端,快速访问和操作多种数据库系统,提高工作效率。例如,可以使用 DBMasker 提供的元数据接口和数据接口来执行常见的数据库操作,如获取表信息、执行 SQL 查询和更新等。
数据安全和合规专家:DBMasker 可用于开发数据库安全保护系统,帮助企业在满足数据安全和合规要求的同时,实现对敏感数据的保护。例如,金融、医疗等行业在处理客户数据时,可以使用 DBMasker 提供的敏感数据处理接口对数据进行脱敏处理,确保数据的隐私不会被泄露。
数据科学家和分析师:DBMasker 可用于开发数据分析和挖掘工具,帮助数据科学家和分析师在保护数据隐私的同时,对数据进行深入分析。例如,在进行用户行为分析时,可以使用 DBMasker 提供的敏感数据处理接口对用户的个人信息进行脱敏处理,确保在数据分析过程中不泄露敏感信息。
5、快速上手指南
如果打算快速地搭建 DBMasker 并运行,请阅读快速上手指南页面,该页面描述了如何部署 DBMasker 并在本地环境下运行示例。
6、项目地址
项目网站:https://dbmasker.idslab.io/
项目源码:https://github.com/hitsz-ids/dbmasker