java - 围绕 jdbc 的方解石模式以及每个用户的过滤表

标签 java jdbc apache-calcite

我需要在特定的 jdbc 数据源之上向用户公开一个类似 SQL 的引擎。每个用户应该只能看到来自该 jdbc 数据源的特定过滤数据。

因此,当特定用户针对数据源运行 SQL 时,例如:

select * from table where column = value

引擎应该执行相当增强的查询:

select * from (select * from table where user = specific_user) where column = value

我已经开始摆弄方解石 - 如何用它实现这样的逻辑?我应该在 JDBCSchema 之上添加自定义 View 还是尝试构建一些委托(delegate)给 JDBCSchema 的新架构?

最佳答案

是否预先知道要过滤的表列表(以及保存用户名的列)?如果是这样,您可以构建一个 JSON model file包含手写 View 定义。

关于java - 围绕 jdbc 的方解石模式以及每个用户的过滤表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46563082/

相关文章:

java - 什么应该符合 "long running task"的条件才能在 SwingWorker 线程中执行?

java - Android 无法解析构造函数 LineViewGraph

java - 在 spring boot 2.4.0 版本中包含配置文件

java - Tomcat 上下文中的 MySQL JDBC 连接 URL 参数

mysql - Apache 方解石 :parse failed: Encountered "from\""

java - 找不到带有 apache 方解石的表

java - 如何将当前日期时间的格式设置为不同的格式?

java - 使用 JButtons 通过 JDBC 执行 SQL 查询

java - 无法通过java连接oracle 11g

java - 为什么 Flink SQL 对所有表都使用 100 行的基数估计?