V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ccw4wcc
V2EX  ›  程序员

trino 如何获取他的执行树?

  •  
  •   ccw4wcc · 263 天前 · 853 次点击
    这是一个创建于 263 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2024-02-20 17:35:51 +08:00
    ccw4wcc
        1
    ccw4wcc  
    OP
       263 天前
    补充一下:感觉如果把 trino 里面的这一快逻辑单独抽一份出来在业务代码里,回比较臃肿,所以想知道有没有办法直接通过 trino 来控制
    YouXia
        2
    YouXia  
       263 天前
    这种随便怎么搞都可以,比如写个 Trino 插件,然后实现 SystemAccessControl 接口,在获取表和字段的接口里做下判断,比如在 checkCanSelectFromColumns 里做下字段权限的判断。
    ccw4wcc
        3
    ccw4wcc  
    OP
       263 天前
    每个用户申请到的字段权限都是不一样的,而且会经常变更,所以个人认为通过 ranger 这样的账号控制的话不太灵活
    ccw4wcc
        4
    ccw4wcc  
    OP
       263 天前
    @YouXia #2 感谢大佬,这确实是一种方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2375 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:00 · PVG 00:00 · LAX 08:00 · JFK 11:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.