以只读模式打开 JdbcTemplate 连接?

发布于 2024-09-02 10:07:58 字数 53 浏览 7 评论 0原文

是否可以以只读模式打开 JdbcTemplate 连接,以便我无法对底层数据源执行任何更改?

is it possible to open a JdbcTemplate connection in read only mode, so that I can't perform any changes to the underlying data source?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

指尖上的星空 2024-09-09 10:07:58

我使用这样的辅助方法

private void setConnectionReadOnly(boolean readOnly) {
    try {
        jdbcTemplate.getDataSource().getConnection().setReadOnly(readOnly);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

I use a helper method like this

private void setConnectionReadOnly(boolean readOnly) {
    try {
        jdbcTemplate.getDataSource().getConnection().setReadOnly(readOnly);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
玩心态 2024-09-09 10:07:58

我不相信 JDBC 连接 API 允许这样做。

您有两种选择:

  1. 授予适当的权限
    数据库级别仅允许 SELECT
    运营;
  2. 使用 Spring AOP 和 Security 来拦截对 DAO 上写入操作的调用,并禁止某些角色执行这些操作。

第二种选择显然更加灵活,并且符合 Spring 自然习惯的精神。

I don't believe the JDBC connection API allows this.

You have two choices:

  1. GRANT appropriate permissions on the
    database level to only allow SELECT
    operations;
  2. Use Spring AOP and Security to intercept calls to write operations on the DAO and forbid them for certain roles.

The second choice is obviously more flexible and in the spirit of Spring's natural idiom.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文