前言
随着presto在公司内部的使用,越来越多的同事将日常的开发迁移到presto,需要不单单仅限于查询平台,更多的用户希望可以通过自己的账号直接使用presto查询,这样就是带来三个问题:
用户可以使用内部ERP系统的账号和密码进行查询
需要验证用户的权限是否有查询表的权限
基于审计的要求,需要保留所有的查询痕迹
调研
presto是一个非常方便的mpp架构引擎,为了方便公司用户的使用,提供了非常方便的插件,具体可以参考:presto开发指南。
针对以上的需求,通过文档,设计了如下方案:
- 开启https + ldap 做账号和密码验证, presto 本身支持。
- 开发AccessCoutrol 对每次查询做权限验证
- 开发EventListener 对每次查询做审计记录
配置和开发
开启https 和 ldap 验证
公司内部有ldap,可以充分利用起来,如果没有ldap的公司,可以考虑使用passwordfile的模式,讲用户名和密码写在特定的文件里面,具体可以参考官方文档。
- config.preperties配置
在 presto 的 config.preperties 新增https配置,