Skip to content

[ 功能建议 ] 查询表权限检验和动态脱敏功能改造 #145

@hhyo

Description

@hhyo

目前遇到的问题/使用障碍

表权限

关于表权限检验,目前是利用inception的语法树打印获取SQL包含的表信息,再按照用户拥有的权限列表进行判断,不支持子查询的解析

查询脱敏

包括MySQL和MsSQL的实现,相关配置项:QUERY_CHECK说明

MySQL查询脱敏需要先解析语句,获取select信息,提取脱敏字段,再针对脱敏字段去正则匹配脱敏规则,进行字符替换

MsSQL的实现则相对简单,不需要解析语句,直接对所有查询结果数据进行匹配替换

解析语句比较精准,没有误伤,但是语法解析相对困难,会存在比较多的限制

希望如何解决/实现它

其他信息

语法解析相关开源库

  • 小米SOAR:go实现,结合了vitess的语法解析库和TIDB语法解析库,仅支持mysql
  • Inception:c实现,包含语法树打印功能,仅支持mysql
  • Druid:java实现,SQL Parser模块,支持数据库多
  • sqlparser:python实现,需要自己遍历tokens
  • moz-sql-parser:python实现,直接输出语法树

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions