无法在只读模式下使用 Crate JDBC 2.6.0

Unable to use Crate JDBC 2.6.0 in read only mode

我想限制 delete/update 个语句

这就是我正在尝试的

ResultSet rs = stmt.executeQuery("delete from test where id=243640033")

理想情况下,JDBC 的 executeQuery 方法不应允许更新、删除等操作。但是 Crate 数据库只是简单地执行删除查询。然后我试了connection.setReadOnly(true),没用

有什么方法可以限制 Crate JDBC 从 stmt.executeQuery(somequery) 方法执行 update/delete/drop 操作吗?

您可以仅使用 Data Query Language (DQL) privileges 创建一个 CrateDB 用户,然后使用该用户连接 JDBC。这将阻止所有 INSERT / UPDATE / DELETE / DROP 操作。

CREATE USER read_only WITH (password = '<secure-password>');
GRANT DQL TO read_only;

如果需要,您可以进一步限制对特定架构、表或视图的访问。比较有关如何实现此目的的文档。