0

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

谢谢,
ktm

4

3 回答 3

4

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

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

于 2011-02-04T18:23:15.270 回答
1

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

于 2011-02-04T18:36:55.700 回答
0

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

于 2011-02-05T17:21:34.323 回答