【问题标题】:Spring JdbcTemplate - How to restrict queries to SELECT(s)?Spring JdbcTemplate - 如何将查询限制为 SELECT(s)?
【发布时间】:2011-02-04 18:20:33
【问题描述】:

我正在编写一个使用 JdbcTemplate 并执行用户查询的程序。有没有办法通过 Spring JDBC 包将用户查询限制为 SELECT 语句?我不希望用户执行任何更新底层数据库的查询。

谢谢,
公里

【问题讨论】:

    标签: java spring jdbc spring-jdbc


    【解决方案1】:

    Spring JDBC 无法自动为您执行此操作,您必须编写自己的适配器并确保您的所有代码都调用该适配器。

    您是否考虑过使用数据库权限来实现您想要的?这取决于您希望您的安全性有多精细,但创建一个“应用程序”数据库用户是一个好主意,该用户是与数据库所有者帐户分开的帐户。然后根据每个表授予适当的权限。

    【讨论】:

      【解决方案2】:

      Spring 安全性就是为此而设计的。它有一个用于处理访问的预定义​​表。

      【讨论】:

        【解决方案3】:

        如果您可以选择,请考虑使用 JPA(Java Persistence API);查询对象有单独的 getResultListgetSingleResult -方法,如果查询是 DELETE 或 UPDATE 则抛出异常(删除和更新仅通过 executeUpdate)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-01-04
          • 1970-01-01
          • 1970-01-01
          • 2023-03-17
          • 1970-01-01
          • 2019-03-03
          • 1970-01-01
          相关资源
          最近更新 更多