暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

技术分享 | openLooKeng的行级权限控制

openLooKeng 2021-11-10
1298

Hi,朋友。openLooKeng近期带来了许多技术干货,前有安装部署,后有安全认证机制、Hash Join的使用介绍等等,如果您正在使用openLooKeng, 希望这些技术博客能够帮助到您。本期,社区小伙伴将用一个简单的User Case,介绍openLooKeng的行级权限控制


openLooKeng的行级权限控制


#1

行级权限的作用


通过 Rowfilter 实现对表数据行级别的权限控制:指定特定用户只能访问授权过的行,隐藏未授权的行数据。


#2

Use Case

源数据表:


配置Rowfilter策略:


查询效果:


#3

Rowfilter实现方式

回顾一下openLooKeng的coordinator接收到一个SQL的处理过程:终端用户通过ODBC或者JDBC driver将一个SQL语句发送到coordinator,这时SQL是以文本的形式被接收的。coordinator会解析parse和分析analysis,然后生成query plan。

openLooKeng analysis过程分为两部分:StatementRewrite和StatementAnalyzer。这两部分中都有权限相关的检查。


考虑到:

  1.     Rangeradmin侧仅存储鉴权策略,而鉴权逻辑在openLooKeng侧的ranger-plugin中完成。

  2. Rowfilter策略实际就是where条件子句。


所以,在StatementRewrite中将Rowfilter条件子句重写到sql中。


主要的代码修改涉及:


  1. Ranger侧:修改openLooKeng数据源的策略定义,增加行权限策略的配置界面。

  2. openLooKeng侧:增加一个新的rewrite类:RowFilteRewrite,将条件子句加到sql中。

以上便是本期小伙伴带来的分享。如果您也想在社区分享您的文章,欢迎联系openLooKeng小助手。


推荐阅读

CCF BDCI大赛报名中,openLooKeng诚邀您来参加


报名截止时间: 2021年11月20日


openLooKeng

欢迎访问openLooKeng官网

https://openlookeng.io

社区代码仓

https://gitee.com/openlookeng

欢迎关注我们

微信公众号 | openLooKeng

社群助手 | openLooKengoss



文章转载自openLooKeng,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论