oracle - Spring Batch 的 oracle 用户需要什么权限?

标签 oracle spring-batch spring-batch-admin

我有一个 Spring Batch 管理应用程序。我们最近尝试通过创建具有最小权限的新 Oracle 用户来提高安全性。替换 Spring Batch 应用程序的用户后,出现此错误。

异常:org.springframework.dao.DataAccessResourceFailureException:无法获取序列值;嵌套异常是java.sql.SQLException:ORA-00942:表或 View 不存在

查看应用程序和 tomcat 日志后,我发现应用程序在抛出错误之前尝试了 3 次执行此查询。

从 BATCH_JOB_INSTANCE 中选择 JOB_INSTANCE_ID、JOB_NAME,其中 JOB_NAME = ?和 JOB_KEY = ? 我尝试使用日志中规定的值从 sql Developer 进行相同的查询,但没有返回任何结果 - 但成功完成。 (没有找到表格错误。)

我尝试在日志中搜索相同 JOB_KEY 的实例,认为会有一条插入语句,但我在该日志中没有看到任何内容。

有熟悉Spring Batch的人可以帮我验证oracle用户需要什么权限吗?我们的新用户没有创建或删除权限。您能帮我验证这些是否是必需的,以及为什么。 - 意思是创建和删除临时表?我试图在不同的日志文件中找到它,但到目前为止我还没有成功。

谢谢!

最佳答案

该错误表明无法找到序列值。这会让我相信您拥有的新数据库 ID 可以访问表,但不能访问序列。 Spring Batch 的 Oracle 架构除了表之外还使用了三个序列:BATCH_STEP_EXECUTION_SEQ、BATCH_JOB_EXECUTION_SEQ 和 BATCH_JOB_SEQ。

关于oracle - Spring Batch 的 oracle 用户需要什么权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22916040/

相关文章:

c# - 获取数据库的表

java - Oracle 日期文字 [DD-MON-RR HH.MI.SSXFF AM]

java - JdbcBatchItemWriter 是否不支持 List<Map> 输入项?

java - 覆盖 spring batch admin 以使用 mysql 数据库

java - 回滚 RuntimeException : org. springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;错误的 SQL 语法 [ - Spring Batch 问题

oracle - 在 Oracle 11g 数据库中使用 OpenAI API (chatgpt)

sql - Oracle PL/SQL 字符串比较问题

java - 如何在构造函数中使用@Value?

java - 使用 Hibernate 和 Spring 批量插入

java - Bean 属性不可读或具有无效的 getter 方法 : Does the return type of the getter match the parameter type of the setter? Spring Batch