trino 如何获取他的执行树?

78 天前
 ccw4wcc

请教各位大佬,目前公司有个需求,需要解析 sql ,获取到这个 sql 中用的哪些数据的表和字段,然后做一些业务逻辑的判断,大概了解到 Trino 中使用了 Antlr Parser 进行 sql 解析 公司的目前的需求是:sql 传给 trino->需要做个业务判断,这个 sql 里面的表和字段是否都有权限可以使用->可以使用才能执行这个 sql 。 想请教一下各位大佬,trino 中有没有可以直接使用的 api 进行使用?我只需要获取到 sql 树,然后遍历出表和字段,结合业务进行判断。

646 次点击
所在节点    程序员
4 条回复
ccw4wcc
78 天前
补充一下:感觉如果把 trino 里面的这一快逻辑单独抽一份出来在业务代码里,回比较臃肿,所以想知道有没有办法直接通过 trino 来控制
YouXia
78 天前
这种随便怎么搞都可以,比如写个 Trino 插件,然后实现 SystemAccessControl 接口,在获取表和字段的接口里做下判断,比如在 checkCanSelectFromColumns 里做下字段权限的判断。
ccw4wcc
78 天前
每个用户申请到的字段权限都是不一样的,而且会经常变更,所以个人认为通过 ranger 这样的账号控制的话不太灵活
ccw4wcc
78 天前
@YouXia #2 感谢大佬,这确实是一种方法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016938

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX