文章更新时间:2023-09-07 11:30
组件简介
维护者 | h2database组织 | 许可证类型 | MPL-2.0,EPL 1.0 |
首次发布 | 2007 年 8 月 26 日 | 最新发布时间 | 2023 年 9 月 1 日 |
GitHub Star | 1175 | GitHub Fork | 3842 |
依赖包 | 7,714 | 依赖存储库 | 266,808 |
com.h2database:h2是一个用Java开发的嵌入式数据库,它可以在内存或磁盘中存储数据,也可以以客户端-服务器模式运行。它支持标准的SQL和JDBC API,还有许多其他的特性和功能,如加密,全文搜索,浏览器控制台等。它是一个开源的项目,占用空间小,只有一个jar文件,大小约为2.5 MB。它可以与Spring Boot等流行的框架和工具集成,也可以与其他数据库进行互操作或迁移。它是一个非常快速,灵活,安全的数据库引擎。
官网:https://www.h2database.com/html/main.html
官方仓库:https://github.com/h2database/h2database
参考链接:
https://packages.ecosyste.ms/registries/repo1.maven.org/packages/com.h2database:h2
https://mvnrepository.com/artifact/com.h2database/h2
组件健康度
技术健康度 | com.h2database:h2是一个Java SQL数据库,它有以下特点:非常快速,开源,支持JDBC API可以嵌入式和服务器模式运行,可以使用磁盘或内存数据库支持事务,多版本并发基于浏览器的控制台应用支持加密数据库和全文搜索纯Java实现,占用空间小:jar文件大小约为2.5 MB有ODBC驱动程序 这些特点说明com.h2database:h2是一个技术上先进和灵活的数据库组件,可以适应不同的应用场景和需求。它的技术健康度是很高的。 |
社区健康度 | com.h2database:h2在GitHub上有3.8k个星标,1.2k个分支,1.4k个提交,153个贡献者。这些数字表明它有一个活跃和参与的社区,可以为项目提供反馈,贡献代码,解决问题。另外,它还有一个[Google Groups]论坛,可以让用户提问和讨论相关话题。它的社区健康度是很好的。 |
更新和维护频率 | com.h2database:h2在2023年8月22日发布了2.2.222版本。这是一个很大的更新,包括了许多新功能和修复。这个更新说明com.h2database:h2仍然在不断地改进和适应最新的技术发展和需求变化。它的更新和维护频率是提高了。 |
兼容性 | com.h2database:h2支持Java 8及以上版本,可以与多种流行的框架和工具集成,如Spring Boot,Hibernate,Flyway等。它还支持多种SQL方言和函数,可以与其他数据库进行互操作或迁移。因此,它的兼容性是很好的。 |
文档和支持 | com.h2database:h2有一个详细和完整的[文档],包括快速入门,教程,参考手册等。文档中还提供了许多示例代码和截图,可以帮助用户理解和使用该组件。除了文档外,用户还可以通过[Google Groups]论坛或[GitHub Issues]页面寻求支持和帮助。它的文档和支持是很充足的。 |
com.h2database:h2是一个技术上优秀,社区活跃,更新频繁,兼容性强,文档丰富的数据库组件。它没有明显的缺点或风险。
参考链接:
https://github.com/h2database/h2database
https://www.baeldung.com/spring-boot-h2-database
https://mvnrepository.com/artifact/com.h2database/h2
组件许可证解读
com.h2database:h2这个组件的许可证是MPL 2.0和EPL 1.0。这两种许可证都是开源软件许可证,允许用户自由地使用,修改,分发,和复制该组件。但是,它们也有一些不同的条款和条件,例如:
- MPL 2.0要求用户在修改了该组件的源代码后,必须公开修改后的源代码,并且保持相同的许可证。这意味着用户不能将修改后的源代码保留为私有或者使用其他的许可证来分发。这样做的目的是为了保护该组件的开源性质,鼓励用户分享他们的改进和贡献。而EPL 1.0则不强制要求这一点,只要用户在分发修改后的组件时,提供一个获取源代码的途径即可。这样做的目的是为了给用户更多的灵活性和选择权,让他们可以根据自己的需要来决定是否公开源代码。
- EPL 1.0要求用户在分发该组件时,必须包含一个版权声明和免责声明。这意味着用户必须在分发该组件时,明确地告诉接收者该组件是由谁开发的,以及该组件没有任何担保或保证。这样做的目的是为了保护该组件的开发者免受任何潜在的法律责任或索赔。而MPL 2.0则不需要这样做,只要用户在分发该组件时,保留原始的许可证文件即可。这样做的目的是为了简化用户的分发过程,减少他们需要遵守的规则。
- MPL 2.0和EPL 1.0都不允许用户将该组件与其他不兼容的许可证的组件混合使用或分发 。例如,用户不能将该组件与GPL许可证的组件一起使用或分发,除非该组件也同时遵循GPL许可证。这样做的目的是为了避免产生许可证冲突或混乱,保持该组件与其他开源软件之间的一致性和互操作性。
许可证原文链接:https://github.com/h2database/h2database/blob/master/LICENSE.txt
组件漏洞版本及修复方案
漏洞编号 | 漏洞标题 | 漏洞等级 | 影响版本 | 修复版本 |
MPS-2022-65204 | H2 数据库明文密码问题 | 高危 | [1.4.198,2.1.214] | 避免在启动参数中直接输入明文密码 |
MPS-2022-1435 | H2 Console 代码注入漏洞 | 严重 | (-∞,2.1.210) | 2.1.210 |
MPS-2021-33243 | H2数据库存在JNDI注入漏洞 | 严重 | [1.1.100,2.0.206) | 2.0.206 |
同类型可替代组件
- HSQLDB:这是一个用Java开发的关系型数据库,它支持标准的SQL和JDBC API,还有存储过程,触发器等功能。它可以在内存或磁盘中存储数据,也可以以客户端-服务器模式运行。它是一个开源的项目,占用空间小,只有一个jar文件,大小约为1.5 MB。官网:https://hsqldb.org/
- Apache Derby:这是一个用Java开发的关系型数据库,它支持标准的SQL和JDBC API,还有事务,索引,视图等功能。它可以在内存或磁盘中存储数据,也可以以客户端-服务器模式运行。它是一个开源的项目,占用空间较大,有多个jar文件,总大小约为3.5 MB。官网:https://db.apache.org/derby/
- SQLite:这是一个用C开发的关系型数据库,它支持标准的SQL和JDBC API,还有触发器,视图等功能。它只能在磁盘中存储数据,不能以客户端-服务器模式运行。它是一个开源的项目,占用空间非常小,只有一个jar文件,大小约为300 KB。官网:https://www.sqlite.org/index.html
组件SBOM
组件名称 | 版本 | 是否直接依赖 | 仓库 |
org.locationtech.jts:jts-core | 1.19.0 | 是 | maven |
org.apache.lucene:lucene-core | 9.7.0 | 是 | maven |
org.apache.lucene:lucene-sandbox | 9.7.0 | 否 | maven |
org.apache.lucene:lucene-queries | 9.7.0 | 否 | maven |
javax.servlet:javax.servlet-api | 4.0.1 | 是 | maven |
org.apache.lucene:lucene-analysis-common | 9.7.0 | 是 | maven |
SHLWAPI.dll | 否 | – unmanaged | |
org.osgi:org.osgi.core | 5.0.0 | 是 | maven |
ADVAPI32.dll | 否 | – unmanaged | |
USER32.dll | 否 | – unmanaged | |
jakarta.servlet:jakarta.servlet-api | 5.0.0 | 是 | maven |
该SBOM清单仅展示部分内容
完整SBOM清单及检测报告:
https://www.murphysec.com/console/report/1699628236510199808/1699628236556337152?allow=1