spring.jpa.hibernate.ddl-auto = validate需要什么最低数据库特权?

问题描述 投票:0回答:1

我正在尝试将Spring Boot与Oracle数据库一起使用。在开发过程中,我们一直在使用休眠设置spring.jpa.hibernate.ddl-auto =验证但是,既然我们正在向生产版本迈进,我们想锁定连接权限。但是,即使在生产版本中,也要保留由休眠验证启动过程提供的完整性检查。

不幸的是,当我尝试使用具有足够特权来运行Spring Boot应用程序的数据库连接来执行此操作时,休眠验证阶段在bean初始化期间失败,因为它说表丢失了。现在我知道这是不对的,所以我敢打赌,休眠状态使用附加查询来验证架构,并且这些查询需要附加访问权限。如果我将该值设置为none,则该应用程序可以运行,但不检查架构兼容性。如果我将DBA特权授予连接用户,并且包括验证在内的所有方法都可以正常工作。但是我绝对不会在生产环境中提供从应用程序进行访问的级别。

因此,有人知道我可以添加到用户帐户的最低权限,以便启用休眠验证吗?理想情况下,我只在表上提供SELECT,INSERT,UPDATE和DELETE,并在用户帐户上提供CONNECT特权,但这不足以启用验证。

我已经考虑过在某个地方创建一个特殊的自动模式版本变量,并在运行时对其进行验证,但这似乎很麻烦。如果我可以找到可接受的Oracle特权组合来启用验证步骤而又不会过多打开连接,则我更喜欢使用该方法。

我还可以在我们的Continuous Integration服务器上定义一个特殊的作业,以便它临时为一个作业启用所有数据库权限。但是我觉得这是大锤的做法,并不优雅。

非常感谢收到任何提示。

非常感谢,乔纳森

我正在尝试将Spring Boot与Oracle数据库一起使用。在开发过程中,我们一直在使用休眠设置spring.jpa.hibernate.ddl-auto = validate,但现在我们正朝着...

oracle hibernate spring-boot hibernate-validator
1个回答
0
投票

哇!

© www.soinside.com 2019 - 2024. All rights reserved.