融媒体多租户数据隔离方法、系统及设备与流程

文档序号:28117953发布日期:2021-12-22 14:52阅读:80来源:国知局
融媒体多租户数据隔离方法、系统及设备与流程

1.本发明涉及融媒体数据隔离技术领域,特别是涉及融媒体多租户数据隔离方法、系统及设备。


背景技术:

2.本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
3.现有融媒体系统中,传统的多租户系统,针对不同租户的数据隔离,通常采用针对不同租户的权限进行单独分析处理,构造sql查询语句,这种处理方式存在逻辑处理复杂,运行效率低,无法高效扩展的问题。


技术实现要素:

4.为了解决现有技术的不足,本发明提供了融媒体多租户数据隔离方法、系统及设备;实现媒体融合中对市级融媒体云平台下各市直部门、区县融媒体中心等不同租户下的媒资数据进行隔离、查询以及进行相关操作的权限控制。
5.第一方面,本发明提供了融媒体多租户数据隔离方法;
6.融媒体多租户数据隔离方法,包括:
7.基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;
8.根据不同类别的预处理数据,得到sql伪代码;
9.根据sql伪代码、租户信息和用户权限,生成标准sql语句;
10.将生成的sql查询语句下发给业务数据库,从业务数据库中查询出结果;
11.生成不同租户下,不同业务逻辑下的不同查询结果。
12.第二方面,本发明提供了融媒体多租户数据隔离系统;
13.融媒体多租户数据隔离系统,包括:
14.分类模块,其被配置为:基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;
15.sql伪代码生成模块,其被配置为:根据不同类别的预处理数据,得到sql伪代码;
16.标准sql语句生成模块,其被配置为:根据sql伪代码、租户信息和用户权限,生成标准sql语句;
17.下发模块,其被配置为:将生成的sql查询语句下发给业务数据库,从业务数据库中查询出结果;
18.查询结果生成模块,其被配置为:生成不同租户下,不同业务逻辑下的不同查询结果。
19.第三方面,本发明还提供了一种电子设备,包括:
20.存储器,用于非暂时性存储计算机可读指令;以及
21.处理器,用于运行所述计算机可读指令,
22.其中,所述计算机可读指令被所述处理器运行时,执行上述第一方面所述的方法。
23.第四方面,本发明还提供了一种存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行第一方面所述方法的指令。
24.与现有技术相比,本发明的有益效果是:
25.通过智能化的sql拦截器,根据租户权限构造可扩展的通用sql查询,实现不同租户行级数据读写隔离,达到市级媒体云中数据查询及操作的权限控制,在底层实现市级各租户媒资数据的相对独立性和可控性。
26.本方案采用前置sql拦截器,在业务代码与数据库中间,针对不同租户的权限特征以及不同的数据源,利用sql拦截器,依据租户权限,生成类sql查询代码,最后通过智能化的sql语义实时分析模块,生成可供业务逻辑代码执行的标准sql查询语言,实现不同租户行级数据读写隔离,以及针对不同租户权限进行的权限控制判断,在底层实现市级媒体云各租户媒资数据的相对独立性和可控性。
27.本发明附加方面的优点将在下面的描述中部分给出,或通过本发明的实践了解到。
附图说明
28.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
29.图1为第一个实施例的方法流程图;
30.图2为第一个实施例的训练流程图。
具体实施方式
31.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
32.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
33.本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
34.实施例一
35.本实施例提供了融媒体多租户数据隔离方法;
36.如图1和图2所示,融媒体多租户数据隔离方法,包括:
37.s101:基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;
38.s102:根据不同类别的预处理数据,得到sql伪代码;
39.s103:根据sql伪代码、租户信息和用户权限,生成标准sql语句;
40.s104:将生成的sql查询语句下发给业务数据库,从业务数据库中查询出结果;
41.s105:生成不同租户下,不同业务逻辑下的不同查询结果。
42.进一步地,所述基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;步骤之前还包括:
43.s100

1:获取请求数据;对请求数据进行数据清洗;
44.s100

2:将清洗后的数据分离为用户信息及sql查询信息数据;
45.s100

3:根据用户信息,从用户数据库中读取当前用户所对应的用户数据,所述用户数据,包括:租户信息以及用户权限;
46.s100

4:根据所述用户权限,判断当前请求是否符合用户权限,如果符合,则进入s101;如果不符合,拒绝请求。
47.进一步地,所述方法,还包括:
48.s106:将步骤s100

2生成的sql查询信息数据与步骤s101生成的分类标签作为训练集,对sql语句拦截器训练模型进行增量训练,提高sql语句拦截器识别效率。
49.进一步地,所述s100

1:获取请求数据,是指:每个租户下的用户发起的请求数据,即网络请求中的header信息,包含用户cookie,request数据等。
50.租户:为融媒体平台的使用单位设置的具有管理本单位普通用户、媒资数据等管理权限的账号;
51.用户:为融媒体平台的使用单位中的普通账号。可使用由租户分配的各种功能模块的账号;用户归属于租户,在租户设置的部门下。
52.进一步地,所述s100

1:对请求数据进行数据清洗,具体包括:
53.对请求数据进行csrf(cross site request forgey跨站请求伪造)验证,保证请求来源的真实可靠,然后进行xss(跨站脚本漏洞)及sql(结构化查询语言)安全过滤及用户登录状态检查,判断请求数据是否合法,对非法请求予以拒绝,对合法请求进行数据分离。
54.进一步地,所述s100

2:将清洗后的数据分离为用户信息及sql查询信息数据;其中,用户信息,包括:用户登录状态、用户token(身份令牌)。
55.其中,sql查询信息数据,包括:查询信息集、数据字段等。
56.进一步地,所述s100

3:根据用户信息,从用户数据库中读取当前用户所对应的用户数据,所述用户数据,包括:租户信息以及用户权限;其中,
57.用户数据库,用于存储用户名、用户状态、用户所属租户id等;
58.用户数据,包括:用户id、用户名、基础信息、用户状态、用户所属租户信息等;
59.租户信息,包括:租户id、租户名称、租户媒资数据权限(查询、更新);
60.用户权限,包括:用户操作权限(查询、更新)、媒资数据查询范围等;
61.进一步地,所述s100

5:基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;其中,sql语句拦截器的训练步骤包括:
62.构建训练集;所述训练集为已知sql查询分类标签的步骤s100

1获取的用户请求数据;所述sql查询分类标签,包括:selete(查询)、update(修改)、delete(删除)、insert(插入)等;
63.将训练集输入到sql语句拦截器训练模型中,对sql语句拦截器进行训练,得到训练后的sql语句拦截器。
64.对查询信息按照selete、update、delete、insert等分类进行训练,得到训练后的sql语句拦截器,针对不同类型的训练,至少进行不少于10000请求的训练,以支持本模型对分类的识别成功率达到99.9%,而对于识别的请求数据,则进行人工干预的增量训练,在使用过程中对识别错误的请求数据进行标定重复训练。
65.其中,构建训练集的具体步骤包括:
66.按照tf

idf(term frequency

inverse document frequency,词频

逆向文件频率)算法,根据请求数据中sql查询信息数据中频率,选择频率高于设定阈值的词作为标签。
67.进一步地,s101:基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;具体包括:
68.基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;所述分类标签,包括:查询、新增,修改、删除。
69.进一步地,所述s102:根据不同类别的预处理数据,得到sql伪代码;具体分为以下情况:
70.s1021:根据insert/update分类,在预处理数据中找到需要插入或修改的数据和条件限定,生成插入或更新的sql伪代码;
71.s1022:根据select分类,在预处理数据中找到需要查询的字段和条件限定,生成查询的sql伪代码;
72.s1023:根据delete分类,在预处理数据中找到条件限定,生成删除的sql伪代码。
73.进一步地,所述s103:根据sql伪代码、租户信息和用户权限,生成标准sql语句;具体包括:
74.s1031:针对insert/update分类,生成的标准sql语句为:insert/update[数据表][数据字段]where[查询条件];
[0075]
s1032:针对select分类,生成的标准sql语句为:select[数据表][数据字段]where[查询条件];
[0076]
s1033:针对delete分类,生成的标准sql语句为:delete[数据表]where[查询条件]。
[0077]
读取s102生成的sql伪代码,对sql伪代码利用正则表达式方式匹配出where之后的查询条件,根据s100

3产生的租户信息,根据不同租户在融媒体平台中的稿件权限,在sql语句中增加对于租户id的限定条件,如针对媒资表source,增加租户id限制zuhuid=[当前租户id]的条件限定,并添加至原有查询条件中,生成基于租户id限制的标准sql语句。
[0078]
进一步地,所述s104根据sql标准化要求,生成sql查询语言;将sql查询语句下发给业务数据库,从业务数据库中查询出结果;其中根据sql标准化要求,生成sql查询语言;具体包括:
[0079]
利用sql语句拦截器训练模型,对步骤s100

1中解析出sql查询信息数据进行tf

idf分析,生成出可供业务逻辑代码执行的sql查询语言,下发给下游业务数据库执行,查询出结果。
[0080]
进一步地,所述s106;将步骤s100

2生成的sql查询信息数据与步骤s101生成的分类标签作为训练集,对sql语句拦截器训练模型进行增量训练,提高sql语句拦截器识别效率具体步骤包括:
[0081]
s1061:将步骤s100

2生成的sql查询信息数据作为原始分析数据,对sql语句拦截器训练模型作为输入数据集;
[0082]
s1062:将步骤s100

5产生的sql分类结果作为校验集,对步骤s1061产生的结果进
行结果校正;
[0083]
s1063:重复步骤s1061和s1062,对sql语句拦截器训练模型进行增量训练,优化模型解析效率,保证构建结果准确率。
[0084]
所述输出列表包括:基于租户id作为查询条件的标准化sql语句、关于市级媒资数据的相关查询数据,针对update、delete、insert等操作的反馈数据等。
[0085]
本方案针对市级(或具备上下级媒资数据隔离)媒体云用户量大,用户类型复杂,数据量庞大,业务复杂等特点,解决了市级媒体云中对下级媒体的权限控制、数据隔离等难点问题。为市级媒体云的搭建提供了数据基础。
[0086]
实施例二
[0087]
本实施例提供了融媒体多租户数据隔离系统;
[0088]
融媒体多租户数据隔离系统,包括:
[0089]
分类模块,其被配置为:基于训练后的sql语句拦截器,对sql查询信息数据进行分类,得到分类标签和预处理数据;
[0090]
sql伪代码生成模块,其被配置为:根据不同类别的预处理数据,得到sql伪代码;
[0091]
标准sql语句生成模块,其被配置为:根据sql伪代码、租户信息和用户权限,生成标准sql语句;
[0092]
下发模块,其被配置为:将生成的sql查询语句下发给业务数据库,从业务数据库中查询出结果;
[0093]
查询结果生成模块,其被配置为:生成不同租户下,不同业务逻辑下的不同查询结果。
[0094]
此处需要说明的是,上述分类模块、sql伪代码生成模块、标准sql语句生成模块、下发模块和查询结果生成模块对应于实施例一中的步骤s101至s105,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0095]
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
[0096]
所提出的系统,可以通过其他的方式实现。例如以上所描述的系统实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时,可以有另外的划分方式,例如多个模块可以结合或者可以集成到另外一个系统,或一些特征可以忽略,或不执行。
[0097]
实施例三
[0098]
本实施例还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述实施例一所述的方法。
[0099]
应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0100]
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
[0101]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
[0102]
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0103]
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0104]
实施例四
[0105]
本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。
[0106]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1