(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210934305.4
(22)申请日 2022.08.04
(71)申请人 中电云数智科技有限公司
地址 430100 湖北省武汉市经济技 术开发
区人工智能科技园N栋研发楼3层
N3013号
(72)发明人 陈治祥
(74)专利代理 机构 工业和信息化部电子专利中
心 11010
专利代理师 袁鸿
(51)Int.Cl.
G06F 21/62(2013.01)
(54)发明名称
一种基于Elasticsearch策略的Trino权限
控制及装置
(57)摘要
本申请公开了一种基于Elasticsearch 策略
的Trino权限控制方法及装置, 包括: 预先配置业
务系统和Trino 之间ES的index及数据结构, 并基
于trino‑main模块初始化Trino连接ES; 在业务
端写入当前用户权限数据之后, 解析TrinoSQL语
句, 以获取TrinoSQL语句中的catalog、 schema、
table以及执行用户信息; 基于所获取的
TrinoSQL语句中的catalog、 schema、 t able以及
执行用户信息对当前用户执行权限校验; 在校验
通过的情况下, 将当前用户对应的trino ‑main模
块打包, 并在tar.gz中执行替换, 以完成当前用
户的权限部署。 本申请的方法增加了对trino中
所有数据源的权限进行控制, 实现了对权限数据
的变更的实时响应, 实现了更加精 准的进行权限
校验。
权利要求书3页 说明书8页 附图2页
CN 115455462 A
2022.12.09
CN 115455462 A
1.一种基于 Elasticsearc h策略的Tri no权限控制方法, 其特 征在于, 包括:
预先配置业务系统和Trino之间ES的index及数据结构, 并基于trino ‑main模块初始化
Trino连接ES;
在业务端写入当前用户权限数据之后, 解析Trino SQL语句, 以获取Trino SQL语句中
的catalog、 schema、 table以及执 行用户信息;
基于所获取的Trino SQL语句中 的catalog、 schema、 table以及执行用户信息对当前用
户执行权限校验;
在校验通过的情况下, 将当前用户对应 的trino‑main模块打包, 并在tar.gz中执行替
换, 以完成当前用户的权限部署。
2.如权利要求1所述的基于Elasticsearch策略的Trino权限控制方法, 其特征在于, 所
获取的Tri no SQL语句中的catal og包括:
checkCanAc cessCatalog: 校验用户是否可以访问catal og;
filterCatal ogs: 过滤catalog;
所获取的Tri no SQL语句中的sc hema包括:
checkCanSho wSchemas: 校验用户是否可以访问当前catal og下的sc hema;
filterSchemas: 根据用户过 滤允许访问的sc hema;
所获取的Tri no SQL语句中的table包括:
filterTables: 过 滤有查询权限的表;
checkCanInsertIntoTable: 校验表格是否有插 入数据的权限;
checkCanDelete FromTable: 校验表格是否有删除数据的权限;
所获取的Tri no SQL语句中的执 行用户信息包括:
checkCanSho wTablesMetadata: 校验允许访问的表元 数据;
checkCanSelectFromCo lumns: 校验用户是否有查询列的权限。
3.如权利要求2所述的基于Elasticsearch策略的Trino权限控制方法, 其特征在于, 基
于所获取的Trino SQL语句中的catalog、 schema、 table以及执行用户信息对当前用户执行
权限校验 包括:
基于所述checkCanAccessCatalog, 在确定当前用户是超级用户的情况下, 通过, 否则
基于ES查询dbUserName, catal ogName是否存在权限, 存在则校验通过;
基于所述filterCatalogs, 校验用户的catalog的查询权限, 若当前用户为超级用户,
则返回所有的catalog, 否则遍历所有的catalog, 通过dbUserName和catalogName逐条基于
ES校验权限, 将符合的权限返回;
基于所述checkCanShowSchemas, 在确定当前用户是超级用户的情况下, 通过, 否则基
于ES查询dbUserName 是否存在权限, 存在则校验通过;
基于所述filterSchemas, 校验用户的schema的查询权限, 若当前用户为超级用户, 则
返回所有的schemaName, 否则遍历所有的schemaName, 通过dbUserName、 catalogName、
schemaName 逐条基于ES校验权限, 将符合的权限返回;
基于所述checkCanShowTab lesMetadata, 通过dbUserName、 catalogName、 schemaName
查询ES, 以查看用户是否表元 数据的查询权限;
基于所述filterTables, 遍历每一个SchemaTableName, 查询ES, 以判断每个table是否权 利 要 求 书 1/3 页
2
CN 115455462 A
2有查询权限;
基于所述checkCanSelectFromColumns, 将CatalogSchemaTableName解析为
catalogName和SchemaTableName对象, 在ES中查询catalogName、 schemaName、 tableName、
columnName来判断是否拥有该列的查询权限;
基于所述checkCanInsertIntoTable, 根据CatalogSchemaTableName, 解析出
catalogName、 sc hemaName、 tableName, 在ES中查询表具有 写入权限的情况 下, 校验通过;
基于所述checkCanDeleteFromTable, 根据CatalogSchemaTableName, 解析出
catalogName、 sc hemaName、 tableName, 基于 ES查询是否有DELETE_OPERATION_AU TH的权限。
4.如权利要求1所述的基于Elasticsearch策略的Trino权限控制方法, 其特征在于, 完
成当前用户的权限部署之后, 所述Trino权限控制方法还包括: 进入服务器, 利用预设指令
验证权限拦截情况。
5.一种基于Elasticsearch策略的Trino权限控制装置, 其特征在于, 包括处理器, 其被
配置为:
预先配置业务系统和Trino之间ES的index及数据结构, 并基于trino ‑main模块初始化
Trino连接ES;
在业务端写入当前用户权限数据之后, 解析Trino SQL语句, 以获取Trino SQL语句中
的catalog、 schema、 table以及执 行用户信息;
基于所获取的Trino SQL语句中 的catalog、 schema、 table以及执行用户信息对当前用
户执行权限校验;
在校验通过的情况下, 将当前用户对应 的trino‑main模块打包, 并在tar.gz中执行替
换, 以完成当前用户的权限部署。
6.如权利要求5所述的基于Elasticsearch策略的Trino权限控制装置, 其特征在于, 所
获取的Tri no SQL语句中的catal og包括:
checkCanAc cessCatalog: 校验用户是否可以访问catal og;
filterCatal ogs: 过滤catalog;
所获取的Tri no SQL语句中的sc hema包括:
checkCanSho wSchemas: 校验用户是否可以访问当前catal og下的sc hema;
filterSchemas: 根据用户过 滤允许访问的sc hema;
所获取的Tri no SQL语句中的table包括:
filterTables: 过 滤有查询权限的表;
checkCanInsertIntoTable: 校验表格是否有插 入数据的权限;
checkCanDelete FromTable: 校验表格是否有删除数据的权限;
所获取的Tri no SQL语句中的执 行用户信息包括:
checkCanSho wTablesMetadata: 校验允许访问的表元 数据;
checkCanSelectFromCo lumns: 校验用户是否有查询列的权限。
7.如权利要求6所述的基于Elasticsearch策略的Trino权限控制装置, 其特征在于, 所
述处理器具体 被配置为:
基于所述checkCanAccessCatalog, 在确定当前用户是超级用户的情况下, 通过, 否则
基于ES查询dbUserName, catal ogName是否存在权限, 存在则校验通过;权 利 要 求 书 2/3 页
3
CN 115455462 A
3
专利 一种基于Elasticsearch策略的Trino权限控制及装置
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:34:42上传分享