数据获取方法、装置、服务器及存储介质与流程

文档序号:32603415发布日期:2022-12-17 18:05阅读:36来源:国知局
数据获取方法、装置、服务器及存储介质与流程

1.本技术涉及互联网技术领域,特别涉及一种数据获取方法、装置、服务器及存储介质。


背景技术:

2.随着互联网技术的发展,数据量越来越大,数据类型也越来越多。为了便于实现对数据的统一管理,一般将多个数据提供方提供的数据存储到数据库中。当用户获取数据时,查询数据库,从数据库中获取匹配的数据,从而实现数据共享。
3.相关技术中,用户获取数据时,通过终端向服务器发送数据获取请求,该数据获取请求携带查询参数,用于获取某一类型的数据。服务器在接收到该数据获取请求后,根据该查询参数查询数据库,从数据库中获取匹配的数据,然后返回给终端。
4.由于任一用户都可以通过上述方法从数据库中获取数据,因此容易造成数据泄露,导致数据的安全性较低。


技术实现要素:

5.本技术实施例提供了一种数据获取方法、装置、服务器及存储介质,可以提高数据的安全性。具体技术方案如下:
6.一方面,本技术实施例提供了一种数据获取方法,所述方法包括:
7.接收终端发送的第一数据获取请求,从所述第一数据获取请求中获取查询参数组;其中,所述查询参数组用于查询第一目标数据;
8.将所述查询参数组进行封装,得到参数实体;
9.获取目标账号的账号信息以及第一权限信息;其中,所述目标账号为当前登录所述终端的账号;
10.将所述账号信息以及所述第一权限信息进行封装,得到账号实体;
11.基于所述账号实体和所述参数实体,对所述目标账号进行权限验证;
12.在所述目标账号通过权限验证的情况下,将所述查询参数组中的多个目标查询参数进行拼接、封装,得到第一逻辑查询语句;
13.基于所述第一逻辑查询语句,查询第一数据库;其中,所述第一数据库用于存储第二逻辑查询语句,所述第二逻辑查询语句为未填充目标查询参数的逻辑查询语句;
14.将所述多个目标查询参数填充至查询到的第二逻辑查询语句中,得到目标逻辑查询语句;
15.基于所述目标逻辑查询语句,查询第二数据库,得到所述第一目标数据;所述第二数据库用于存储多种类型的数据。
16.在一种可能的实现方式中,所述基于所述账号实体和所述参数实体,对所述目标账号进行权限验证,包括:
17.基于所述账号实体和所述参数实体,对所述目标账号的登录权限进行验证;
18.在所述登录权限通过验证的情况下,基于所述账号实体和所述参数实体,对所述目标账号的访问权限进行验证。
19.在另一种可能的实现方式中,所述账号实体包括:第一账号标识,所述第一账号标识用于标识所述目标账号;所述参数实体包括:语句标识,所述语句标识用于标识所述第二逻辑查询语句;
20.所述基于所述账号实体和所述参数实体,对所述目标账号的登录权限进行验证,包括:
21.基于预先确定的账号标识和语句标识的对应关系,查询与所述参数实体中的语句标识匹配的第二账号标识;
22.确定所述第一账号标识和所述第二账号标识之间的匹配度;
23.在所述匹配度大于匹配度阈值的情况下,确定所述目标账号的登录权限通过验证。
24.在另一种可能的实现方式中,所述将所述账号信息以及所述第一权限信息进行封装,得到账号实体,包括:
25.将所述账号信息以及所述第一权限信息进行加密,得到所述第一账号标识;
26.获取所述目标账号的访问信息,所述访问信息用于表示所述目标账号对界面或数据的访问情况;
27.将所述第一账号标识和所述访问信息进行封装,得到所述账号实体。
28.在另一种可能的实现方式中,所述参数实体包括:第一数据表、第一字段以及第一查询范围;
29.所述基于所述账号实体和所述参数实体,对所述目标账号的访问权限进行验证,包括:
30.基于所述账号实体中的第一权限信息,确定所述目标账号允许访问的第二数据表、第二字段以及第二查询范围;
31.在所述第二数据表中包括所述第一数据表、所述第二字段中包括所述第一字段以及所述第二查询范围包括所述第一查询范围的情况下,确定所述目标账号的访问权限通过验证。
32.在另一种可能的实现方式中,所述方法还包括:
33.在所述目标账号的访问权限未通过验证的情况下,确定第二目标数据,所述第二目标数据为所述目标账号没有访问权限的数据;
34.向所述终端发送第一通知消息,所述第一通知消息中携带所述第二目标数据;所述终端用于基于所述第一通知消息,显示第一权限界面;在所述第一权限界面中获取到第二权限信息后,向服务器发送第二数据获取请求;所述第二权限信息用于表示获取所述第二目标数据的权限信息;
35.响应于所述第二数据获取请求,基于所述第一权限信息和所述第二权限信息,对所述目标账号的访问权限进行验证。
36.在另一种可能的实现方式中,所述方法还包括:
37.确定所述第一目标数据所占用的存储空间;
38.在所述存储空间大于预设阈值的情况下,将所述第一目标数据进行压缩,得到压
缩后的第一目标数据;
39.向所述终端返回所述压缩后的第一目标数据。
40.另一方面,本技术实施例提供了一种数据获取装置,所述装置包括:
41.接收模块,用于接收终端发送的第一数据获取请求,从所述第一数据获取请求中获取查询参数组;其中,所述查询参数组用于查询第一目标数据;
42.第一封装模块,用于将所述查询参数组进行封装,得到参数实体;
43.第一获取模块,用于获取目标账号的账号信息以及第一权限信息;其中,所述目标账号为当前登录所述终端的账号;
44.第二封装模块,用于将所述账号信息以及所述第一权限信息进行封装,得到账号实体;
45.验证模块,用于基于所述账号实体和所述参数实体,对所述目标账号进行权限验证;
46.第三封装模块,用于在所述目标账号通过权限验证的情况下,将所述查询参数组中的多个目标查询参数进行拼接、封装,得到第一逻辑查询语句;
47.第一查询模块,用于基于所述第一逻辑查询语句,查询第一数据库;其中,所述第一数据库用于存储第二逻辑查询语句,所述第二逻辑查询语句为未填充目标查询参数的逻辑查询语句;
48.填充模块,用于将所述多个目标查询参数填充至查询到的第二逻辑查询语句中,得到目标逻辑查询语句;
49.第二查询模块,用于基于所述目标逻辑查询语句,查询第二数据库,得到所述第一目标数据;所述第二数据库用于存储多种类型的数据。
50.在一种可能的实现方式中,所述验证模块,用于基于所述账号实体和所述参数实体,对所述目标账号的登录权限进行验证;在所述登录权限通过验证的情况下,基于所述账号实体和所述参数实体,对所述目标账号的访问权限进行验证。
51.在另一种可能的实现方式中,所述账号实体包括:第一账号标识,所述第一账号标识用于标识所述目标账号;所述参数实体包括:语句标识,所述语句标识用于标识所述第二逻辑查询语句;
52.所述验证模块,用于基于预先确定的账号标识和语句标识的对应关系,查询与所述参数实体中的语句标识匹配的第二账号标识;确定所述第一账号标识和所述第二账号标识之间的匹配度;在所述匹配度大于匹配度阈值的情况下,确定所述目标账号的登录权限通过验证。
53.在另一种可能的实现方式中,所述第二封装模块,用于将所述账号信息以及所述第一权限信息进行加密,得到所述第一账号标识;获取所述目标账号的访问信息,所述访问信息用于表示所述目标账号对界面或数据的访问情况;将所述第一账号标识和所述访问信息进行封装,得到所述账号实体。
54.在另一种可能的实现方式中,所述参数实体包括:第一数据表、第一字段以及第一查询范围;
55.所述验证模块,用于基于所述账号实体中的第一权限信息,确定所述目标账号允许访问的第二数据表、第二字段以及第二查询范围;在所述第二数据表中包括所述第一数
据表、所述第二字段中包括所述第一字段以及所述第二查询范围包括所述第一查询范围的情况下,确定所述目标账号的访问权限通过验证。
56.在另一种可能的实现方式中,所述装置还包括:
57.第一确定模块,用于在所述目标账号的访问权限未通过验证的情况下,确定第二目标数据,所述第二目标数据为所述目标账号没有访问权限的数据;
58.第一发送模块,用于向所述终端发送第一通知消息,所述第一通知消息中携带所述第二目标数据;所述终端用于基于所述第一通知消息,显示第一权限界面;在所述第一权限界面中获取到第二权限信息后,向服务器发送第二数据获取请求;所述第二权限信息用于表示获取所述第二目标数据的权限信息;
59.所述验证模块,还用于响应于所述第二数据获取请求,基于所述第一权限信息和所述第二权限信息,对所述目标账号的访问权限进行验证。
60.在另一种可能的实现方式中,所述装置还包括:
61.第二确定模块,用于确定所述第一目标数据所占用的存储空间;
62.压缩模块,用于在所述存储空间大于预设阈值的情况下,将所述第一目标数据进行压缩,得到压缩后的第一目标数据;
63.第二发送模块,用于向所述终端返回所述压缩后的第一目标数据。
64.另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一项所述的数据获取方法。
65.另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述任一项所述的数据获取方法。
66.另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述任一项所述的数据获取方法。
67.本技术实施例提供的技术方案带来的有益效果是:
68.本技术实施例提供了一种数据获取方法,该方法在获取数据时,基于账号实体和参数实体,对目标账号进行权限验证,在目标账号通过权限验证的情况下,才从数据库中获取目标数据,可见,该方法可以避免数据泄露,从而提高数据的安全性。
附图说明
69.图1是本技术实施例提供的一种数据获取方法的实施环境的示意图;
70.图2是本技术实施例提供的一种数据获取方法的流程图;
71.图3是本技术实施例提供的一种获取数据的示意图;
72.图4是本技术实施例提供的一种获取数据的架构图;
73.图5是本技术实施例提供的一种数据获取装置的结构示意图;
74.图6是本技术实施例提供的一种服务器的结构框图。
具体实施方式
75.为使本技术的技术方案和优点更加清楚,下面对本技术实施方式作进一步地详细描述。
76.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
77.需要说明的是,本技术所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本技术中涉及到的数据、查询参数、账户信息、权限信息等都是在充分授权的情况下获取的。
78.图1是本技术实施例提供的一种文件获取方法的实施环境的示意图。参见图1,该实施环境包括:终端101和服务器102,终端101和服务器102之间可以通过无线或有线网络连接。
79.在一种可能的实现方式中,终端101上安装有浏览器,用户可以在该终端101的浏览器中输入目标网址信息,该终端101的浏览器基于该目标网址信息,跳转到登录界面。用户可以在该登录界面输入账号信息,终端101基于该登录界面的账号信息,从登录界面跳转到数据获取界面。
80.在另一种可能的实现方式中,终端101上安装有目标应用程序,响应于终端101登录该目标应用程序,终端101显示数据获取界面。
81.在本技术实施例中,终端101可以通过上述任一方式显示数据获取界面,对此不作具体限定。
82.数据获取界面上显示多个参数选项,当终端101检测到任一参数选项被触发时,获取用户基于该参数选项输入的查询参数;或者当终端101检测到任一参数选项被触发时,终端101显示该参数选项对应的多个查询参数,获取多个查询参数中被选择的查询参数。数据获取界面还显示查询选项,当终端101检测到查询选项被触发时,向服务器102发送第一数据获取请求,该第一数据获取请求中携带查询参数组,该查询参数组由用户基于多个推荐选项输入或选择的多个查询参数组成。
83.服务器102在接收到第一数据获取请求后,基于登录界面中输入的目标账号的账号信息,获取该目标账号的第一权限信息,然后基于查询参数组、账号信息以及第一权限信息,从第二数据库中获取与第一权限信息匹配的第一目标数据。
84.其中,终端101为手机、平板电脑、pc(personal computer)设备、智能语音交互设备和车载终端等设备中的至少一种。服务器102为一台服务器、由多台服务器组成的服务器集群、云服务器、云计算平台和虚拟化中心中的至少一种。
85.图2是本技术实施例提供的一种数据获取方法的流程图,由服务器执行,参见图2,该方法包括:
86.步骤201:服务器接收终端发送的第一数据获取请求,从第一数据获取请求中获取
查询参数组。
87.该查询参数组包括多个查询参数,用于查询第一目标数据。
88.本步骤中,服务器接收第一数据获取请求的过程可以通过以下任一实现方式实现。
89.第一种实现方式,终端上安装有浏览器,用户可以在该浏览器中输入目标网址信息,终端基于该目标网址信息,跳转到登录界面。用户可以在该登录界面输入账号信息,终端基于该账号信息检测到登录操作时,从登录界面跳转到数据获取界面。
90.数据获取界面上显示有多个参数选项,对于每个参数选项,用户可以基于该参数选项输入查询参数或者从该参数选项对应的多个查询参数中选择一个查询参数,终端获取输入或被选择的查询参数,将多个参数选项对应的多个查询参数组成查询参数组。数据获取界面上还可以显示查询选项,响应于查询选项被触发的触发操作,终端向服务器发送第一数据获取请求,该第一数据获取请求中携带查询参数组。其中,服务器为目标网址信息对应的网站服务器。
91.第二种实现方式,终端上安装有目标应用程序,若终端首次登录该目标应用程序,终端显示登录界面。用户可以在该登录界面输入账号信息,终端基于该账号信息检测到登录操作时,从登录界面跳转到数据获取界面。若终端非首次登录该目标应用程序,响应于终端登录该目标应用程序,直接显示数据获取界面。
92.该实现方式中,终端基于该数据获取界面向服务器发送第一数据获取请求的方式与上述第一种实现方式相似,这里不再赘述。其中,该服务器为目标应用程序对应的后台服务器。
93.在本技术实施例中,查询参数组包括数据类型、语句标识、第一数据表、第一字段、第一查询范围以及用户标识,当然,该查询参数组还可以包括其他查询参数。其中,数据类型用于表示待获取的第一目标数据的类型,该类型可以为积分类型、签到类型、用户基本信息类型、用户行为类型以及其他数据类型等;语句标识用于标识第二逻辑查询语句,该语句标识可以为第二逻辑查询语句的编号;第一数据表用于表示第一目标数据在第二数据库中所在的数据表;第一字段用于表示第一目标数据所在的第一数据表的列;第一查询范围用于表示第一目标数据所在的第一数据表的行;用户标识用于表示获取第一目标数据的用户id(identity document,身份标识)。
94.在本技术实施例中,第一目标数据可以为一种类型的数据,也可以为多种类型的数据,对此不作具体限定。
95.在本技术实施例中,服务器包括:控制模块和解析模块,控制模块可以从第一数据获取请求中获取查询参数组。控制模块获取第一查询参数组后,可以调用解析模块,先对查询参数组进行解析,确定每个查询参数的类型以及必填的查询参数是否满足要求,若满足要求,再执行步骤202;若不满足要求,则控制模块向终端发送第二通知消息,该第二通知消息中携带错误码和错误信息,用于通知终端存在不符合要求的查询参数。当然,控制模块获取第一查询参数组后,也可以调用解析模块直接执行步骤202。
96.步骤202:服务器将查询参数组进行封装,得到参数实体。
97.解析模块将查询参数组中的多个查询参数进行封装,得到参数实体,然后向控制模块发送参数实体。
98.步骤203:服务器获取目标账号的账号信息以及第一权限信息。
99.该目标账号为当前登录终端的账号。该账号信息用于表示目标账号的账号名和账号密码等信息,第一权限信息用于表示目标账号允许访问数据的权限信息。
100.在本技术实施例中,服务器还包括:登录模块,控制模块可以在终端登录目标账号时,调用登录模块获取目标账号的账号信息以及第一权限信息。或者,控制模块也可以在得到参数实体后,调用登录模块获取目标账号的账号信息以及第一权限信息,这里对控制模块获取目标账号的账号信息以及第一权限信息的时机不作具体限定。
101.步骤204:服务器将账号信息以及第一权限信息进行封装,得到账号实体。
102.在一种可能的实现方式中,服务器直接将账号信息以及第一权限信息进行封装,得到账号实体。
103.该实现方式中,登录模块将账号信息以及第一权限信息进行封装,得到账号实体,然后向控制模块发送账号实体。
104.在另一种可能的实现方式中,服务器将账号信息以及第一权限信息进行加密,得到第一账号标识;获取目标账号的访问信息,该访问信息用于表示目标账号对界面或数据的访问情况;将第一账号标识和访问信息进行封装,得到账号实体。
105.该实现方式中,登录模块获取账号信息以及第一权限信息后,可以将账号信息以及第一权限信息进行加密,得到第一账号标识。登录模块还可以获取目标账号的访问信息,该访问信息为历史访问信息;然后将第一账号标识和访问信息进行封装,得到账号实体,向控制模块发送账号实体。
106.该实现方式中,将访问信息封装到账号实体中可以为日志记录做铺垫,便于后续了解用户的访问情况。
107.在本技术实施例中,仅以账号实体包括第一账号标识和访问信息为例进行说明。
108.若登录模块封装失败,控制模块向终端发送第三通知消息,该第三通知消息用于通知终端账号实体封装失败。
109.步骤205:服务器基于账号实体和参数实体,对目标账号进行权限验证。
110.权限验证包括登录权限验证和访问权限验证,服务器基于账号实体和参数实体,先对目标账号的登录权限进行验证;在登录权限通过验证的情况下,基于账号实体和参数实体,对目标账号的访问权限进行验证。
111.本步骤中,服务器可以通过以下实现方式对目标账号的登录权限进行验证:服务器基于预先确定的账号标识和语句标识的对应关系,查询与参数实体中的语句标识匹配的第二账号标识;确定第一账号标识和第二账号标识之间的匹配度;在该匹配度大于匹配度阈值的情况下,确定目标账号的登录权限通过验证。
112.该实现方式中,控制模块基于参数实体中的语句标识,查询账号标识和语句标识的对应关系中是否存在该语句标识,若存在,将该语句标识对应的账号标识作为第二账号标识。然后确定第一账号标识和第二账号标识之间的匹配度,在该匹配度大于匹配度阈值的情况下,确定目标账号的登录权限通过验证。在该匹配度小于或等于匹配度阈值的情况下,确定目标账号的登录权限未通过验证。
113.其中,账号标识和语句标识的对应关系中一个语句标识对应一个账号标识,但由于不同账号的权限不同,因此,所能获取的目标数据也不同,因此,一个账号标识可能对应
多个语句标识,也即账号标识和语句标识为一对一或一对多的关系。
114.在目标账号的登录权限通过验证后,服务器可以通过以下实现方式对目标账号的访问权限进行验证:服务器基于账号实体中的第一权限信息,确定目标账号允许访问的第二数据表、第二字段以及第二查询范围;在第二数据表中包括第一数据表、第二字段中包括第一字段以及第二查询范围包括第一查询范围的情况下,确定目标账号的访问权限通过验证。
115.该实现方式中,参数实体包括:第一数据表、第一字段以及第一查询范围;控制模块确定目标账号允许访问的第二数据表中是否包括第一数据表、第二字段中是否包括第一字段以及第二查询范围是否包括第一查询范围,在第二数据表中包括第一数据表、第二字段包括第一字段以及第二查询范围包括第一查询范围的情况下,确定目标账号的访问权限通过验证。在第二数据表不包括第一数据表或者第二数据表中仅包括第一数据表中的部分数据表的情况下,控制模块确定目标账号的访问权限未通过验证;或者,在第二字段不包括第一字段或者第二字段中仅包括第一字段中的部分字段的情况下,控制模块确定目标账号的访问权限未通过验证;或者,在第二查询范围不包括第一查询范围或者第二查询范围仅包括第一查询范围中的部分查询范围的情况下,控制模块确定目标账号的访问权限未通过验证。
116.在登录权限和访问权限均通过验证的情况下,服务器确定目标账号通过权限验证,然后执行步骤206。
117.在一种可能的实现方式中,若登录权限未通过验证,服务器向终端发送第四通知消息,该第四通知消息用于通知终端登录权限验证失败。若访问权限未通过验证,则服务器向终端发送第五通知消息,该第五通知消息用于通知终端访问权限验证失败。
118.在另一种可能的实现方式中,若登录权限通过验证,而访问权限未通过验证,服务器可以为目标账号增加权限。相应的,该过程可以为:服务器在目标账号的访问权限未通过验证的情况下,确定第二目标数据;向终端发送第一通知消息;响应于第二数据获取请求,基于第一权限信息和第二权限信息,对目标账号的访问权限进行验证。
119.该实现方式中,第二目标数据为目标账号没有访问权限的数据。若第二数据表不包括第一数据表或者第二数据表仅包括第一数据表中的部分数据表,服务器可以通过以下实现方式确定第二目标数据:服务器确定第二数据表与第一数据表是否存在第一交集,若第二数据表与第一数据表存在第一交集,则服务器基于第一数据表,确定该第一交集的补集,得到第三数据表,确定第三数据表中的数据为第二目标数据。若第二数据表与第一数据表不存在交集,则服务器将第一数据表作为第三数据表,确定第三数据表中的数据为第二目标数据。
120.若第二数据表中包括第一数据表,但第二字段中不包括第一字段或者第二字段仅包括第一字段中的部分字段,则服务器可以通过以下实现方式确定第二目标数据:服务器确定第二字段与第一字段是否存在第二交集,若第二字段与第一字段存在第二交集,则服务器基于第一字段,确定第二交集的补集,得到第三字段,确定第三字段对应的数据为第二目标数据。若第二字段与第一字段不存在交集,则服务器将第一字段作为第三字段,确定第三字段对应的数据为第二目标数据。
121.若第二数据表中包括第一数据表,第二字段中包括第一字段,但第二查询范围不
包括第一查询范围或者第二查询范围仅包括第一查询范围中的部分查询范围,则服务器可以通过以下实现方式确定第二目标数据:服务器确定第二查询范围与第一查询范围是否存在第三交集,若第二查询范围与第一查询范围存在第三交集,则服务器基于第一查询范围,确定第三交集的补集,得到第三查询范围,确定第三查询范围对应的数据为第二目标数据。若第二查询范围与第一查询范围不存在交集,则服务器将第一查询范围作为第三查询范围,确定第三查询范围对应的数据为第二目标数据。
122.服务器确定第二目标数据后,向终端发送第一通知消息,第一通知消息中携带第二目标数据。终端接收第一通知消息后,显示第一权限界面,该第一权限界面显示权限获取选项。管理人员可以基于该权限获取选项,输入第二权限信息,或者用户从管理人员处获取第二权限信息,然后基于该权限获取选项,输入第二权限信息,相应的,响应于该权限获取选项被触发的触发操作,终端获取第二权限信息,该第二权限信息用于表示获取第二目标数据的权限信息,然后向服务器发送第二数据获取请求。服务器在接收到第二数据获取请求后,基于第一权限信息和第二权限信息,对目标账号的访问权限进行验证。在通过验证后,执行步骤206。
123.参见图3,从图3中可以看出:终端向服务器发送第一数据获取请求,服务器基于第一数据获取请求,先确定每个查询参数的类型以及必填查询参数是否满足要求。如果不满足要求,则向终端发送第二通知消息。如果满足要求,则对查询参数组进行封装,对账号信息以及第一权限信息进行封装,然后对目标账号进行权限验证。若目标账号通过权限验证,则执行接下来的操作,若目标账号的登录权限通过验证,而访问权限未通过验证,则可以获取第二权限信息,基于第二权限信息和第一权限信息,对目标账号的访问权限进行验证。在验证通过后,执行接下来的操作。
124.在本技术实施例中,在访问权限未通过验证的情况下,可以为用户增加访问权限,从而满足用户需求,提高用户体验。
125.步骤206:在目标账号通过权限验证的情况下,服务器将查询参数组中的多个目标查询参数进行拼接、封装,得到第一逻辑查询语句。
126.在目标账号通过权限验证的情况下,服务器从查询参数组中选择多个查询参数作为多个目标查询参数,将该多个目标查询参数进行拼接,将拼接后的多个目标查询参数进行封装,得到第一逻辑查询语句。
127.例如,服务器将查询参数组中的语句标识、第一数据表、第一字段和第一查询范围分别作为目标查询参数,将该多个目标查询参数进行拼接、封装,得到第一逻辑查询语句。该第一逻辑查询语句为sql(structured query language,结构化查询语言)语句。
128.其中,服务器将多个目标查询参数进行拼接的顺序可以根据需要进行设置并更改,对此不作具体限定。
129.需要说明的一点是,服务器可以直接将多个目标查询参数进行拼接、封装,也可以在将多个目标查询参数进行拼接、封装前,先确定数据请求模块是否正在请求数据。相应的,服务器还包括:数据请求模块,若数据请求模块正在请求数据,确定正在请求的数据是否为第一数据表、第一字段以及第一查询范围对应的数据,也即确定正在请求的数据是否为第一目标数据。若正在请求的数据为第一目标数据,则将当前状态调整为等待状态,若没有正在请求数据或者正在请求的数据不是第一目标数据,则将多个目标查询参数进行拼
接、封装,得到第一逻辑查询语句。
130.在本技术实施例中,对于同一个数据表进行串行访问,这样可以防止数据冲突,减少网络带宽。并且,将查询参数组进行封装、将账号信息以及第一权限信息进行封装以及将多个目标查询参数进行封装,实现模块化封装设计,性能更高。
131.步骤207:服务器基于第一逻辑查询语句,查询第一数据库。
132.第一数据库用于存储第二逻辑查询语句,第二逻辑查询语句为未填充目标查询参数的逻辑查询语句。
133.第一逻辑查询语句中包括语句标识,由于该语句标识用于表示第二逻辑查询语句,基于此,控制模块可以基于第一逻辑查询语句中的语句标识,查询第一数据库中是否存在与该语句标识匹配的第二逻辑查询语句,当查询到与该语句标识匹配的第二逻辑查询语句时,执行步骤208。
134.步骤208:服务器将多个目标查询参数填充至查询到的第二逻辑查询语句中,得到目标逻辑查询语句。
135.控制模块将第一逻辑查询语句中的第一数据表、第一字段和第一查询范围按照一定的顺序填充至查询到的第二逻辑查询语句中,得到目标逻辑查询语句。
136.步骤209:服务器基于目标逻辑查询语句,查询第二数据库,得到第一目标数据。
137.第二数据库用于存储多种类型的数据。
138.控制模块向数据请求模块发送目标逻辑查询语句,数据请求模块基于目标逻辑查询语句中的第一数据表、第一字段以及第一查询范围,查询第二数据库,得到第一目标数据,向控制模块发送第一目标数据。
139.该实现方式中,数据请求模块基于目标逻辑查询语句中的第一数据表,通过通用接口查询第二数据库;当查询到第一数据表时,基于目标逻辑查询语句中的第一字段,查询第一数据表中的列,然后基于目标逻辑查询语句中的第一查询范围,确定第一数据表中的列对应的行,将第一数据表中第一字段所在的列和第一查询范围所在的行对应的数据作为第一目标数据。
140.需要说明的一点是,若服务器基于第一权限信息,对目标账号的访问权限通过验证,则第一目标数据为与第一权限信息匹配的数据。若服务器基于第一权限信息和第二权限信息,对目标账号的访问权限通过验证,则第一目标数据为与第一权限信息和第二权限信息匹配的数据。
141.参见图4,图4为本技术的架构图,从图中可以看出:服务器包括服务层、数据层和业务层,其中,服务层主要用于与终端进行http交互;业务层主要用于进行拼接、封装、判断查询参数组是否满足要求以及记录系统日志等操作;数据层主要用于从数据库中的读取数据、对数据进行压缩等操作,该数据库包括第一数据库和第二数据库;其中,第一数据库可以为ms sql数据库,第二数据库可以为dorisdb数据库或者oracle数据库。该方法的运行环境为内网服务器。
142.需要说明的一点是,相关技术中的方法,在开发阶段,为服务器设置多个接口,不同接口用于获取数据库中不同类型的数据。在获取数据时,服务器先确定待获取的数据类型,然后通过该数据类型对应的接口,从数据库中获取数据。由此可知,相关技术中是通过不同接口获取不同类型的数据。但数据类型越多,需要设置的接口便越多,这样就会造成代
码开发量较大,耗时较长,导致开发效率较低。
143.而本技术实施例提供的方法,仅需设置一个通用接口,就可以获取多个类型的数据,实现了多功能共同一套代码,大大减少了代码开发量,缩短了时间,从而提高了开发效率。其中,该通用接口为http接口。
144.并且,由于相关技术中不同类型的数据需要设置不同的接口,因此,当新增某种类型的数据时,按照相关技术中的方法需要重新设置一个接口,重新编写代码。而本技术实施例提供的方法则无需重新设置接口,只需在数据库中编写对应的逻辑查询语句即可,因此,本技术实施例提供的方法还可以缩短对新需求的响应时间,且对数据库本身几乎无影响。
145.控制模块得到第一目标数据后,可以直接向终端返回第一目标数据。或者控制模块在得到第一目标数据后,可以调用压缩模块对第一目标数据进行压缩。相应的,服务器还包括:压缩模块。控制模块确定第一目标数据所占用的存储空间,在该存储空间大于预设阈值的情况下,调用压缩模块将第一目标数据进行压缩,得到压缩后的第一目标数据,然后向终端返回压缩后的第一目标数据。在该存储空间小于或等于预设阈值的情况下,控制模块直接向终端返回第一目标数据。其中,压缩后的第一目标数据对应的存储空间小于或等于预设阈值。
146.在本技术实施例中,当第一目标数据占用的存储空间较大时,对第一目标数据进行压缩,这样不仅可以减少传输过程中的网络带宽,还可以提高获取数据的数据量,从而满足用户对大数据量的需求,无需多次请求。
147.本技术实施例提供了一种数据获取方法,该方法在获取数据时,基于账号实体和参数实体,对目标账号进行权限验证,在目标账号通过权限验证的情况下,才从数据库中获取目标数据,可见,该方法可以避免数据泄露,从而提高数据的安全性。
148.其中,本技术实施例中的权限验证包括登录权限验证、数据表级别的权限验证、字段级别的权限验证、查询范围级别的权限验证,通过多级权限验证,提高数据的安全性。该方法不仅可以应用于大数据平台下的共享服务,还可以应用到其他数据共享方面,对此不作具体限定。
149.图5是本技术实施例提供的一种数据获取装置的结构示意图,参见图5,该装置包括:
150.接收模块501,用于接收终端发送的第一数据获取请求,从第一数据获取请求中获取查询参数组;其中,查询参数组用于查询第一目标数据;
151.第一封装模块502,用于将查询参数组进行封装,得到参数实体;
152.第一获取模块503,用于获取目标账号的账号信息以及第一权限信息;其中,目标账号为当前登录终端的账号;
153.第二封装模块504,用于将账号信息以及第一权限信息进行封装,得到账号实体;
154.验证模块505,用于基于账号实体和参数实体,对目标账号进行权限验证;
155.第三封装模块506,用于在目标账号通过权限验证的情况下,将查询参数组中的多个目标查询参数进行拼接、封装,得到第一逻辑查询语句;
156.第一查询模块507,用于基于第一逻辑查询语句,查询第一数据库;其中,第一数据库用于存储第二逻辑查询语句,第二逻辑查询语句为未填充目标查询参数的逻辑查询语句;
157.填充模块508,用于将多个目标查询参数填充至查询到的第二逻辑查询语句中,得到目标逻辑查询语句;
158.第二查询模块509,用于基于目标逻辑查询语句,查询第二数据库,得到第一目标数据;第二数据库用于存储多种类型的数据。
159.在一种可能的实现方式中,验证模块505,用于基于账号实体和参数实体,对目标账号的登录权限进行验证;在登录权限通过验证的情况下,基于账号实体和参数实体,对目标账号的访问权限进行验证。
160.在另一种可能的实现方式中,账号实体包括:第一账号标识,第一账号标识用于标识目标账号;参数实体包括:语句标识,语句标识用于标识第二逻辑查询语句;
161.验证模块505,用于基于预先确定的账号标识和语句标识的对应关系,查询与参数实体中的语句标识匹配的第二账号标识;确定第一账号标识和第二账号标识之间的匹配度;在匹配度大于匹配度阈值的情况下,确定目标账号的登录权限通过验证。
162.在另一种可能的实现方式中,第二封装模块504,用于将账号信息以及第一权限信息进行加密,得到第一账号标识;获取目标账号的访问信息,访问信息用于表示目标账号对界面或数据的访问情况;将第一账号标识和访问信息进行封装,得到账号实体。
163.在另一种可能的实现方式中,参数实体包括:第一数据表、第一字段以及第一查询范围;
164.验证模块505,用于基于账号实体中的第一权限信息,确定目标账号允许访问的第二数据表、第二字段以及第二查询范围;在第二数据表中包括第一数据表、第二字段中包括第一字段以及第二查询范围包括第一查询范围的情况下,确定目标账号的访问权限通过验证。
165.在另一种可能的实现方式中,装置还包括:
166.第一确定模块,用于在目标账号的访问权限未通过验证的情况下,确定第二目标数据,第二目标数据为目标账号没有访问权限的数据;
167.第一发送模块,用于向终端发送第一通知消息,第一通知消息中携带第二目标数据;终端用于基于第一通知消息,显示第一权限界面;在第一权限界面中获取到第二权限信息后,向服务器发送第二数据获取请求;第二权限信息用于表示获取第二目标数据的权限信息;
168.验证模块505,还用于响应于第二数据获取请求,基于第一权限信息和第二权限信息,对目标账号的访问权限进行验证。
169.在另一种可能的实现方式中,装置还包括:
170.第二确定模块,用于确定第一目标数据所占用的存储空间;
171.压缩模块,用于在存储空间大于预设阈值的情况下,将第一目标数据进行压缩,得到压缩后的第一目标数据;
172.第二发送模块,用于向终端返回压缩后的第一目标数据。
173.本技术实施例提供了一种数据获取装置,该装置在获取数据时,基于账号实体和参数实体,对目标账号进行权限验证,在目标账号通过权限验证的情况下,才从数据库中获取目标数据,可见,该装置可以避免数据泄露,从而提高数据的安全性。
174.服务器的结构框图可以参见图6,该服务器600可因配置或性能不同而产生比较大
的差异,可以包括处理器(central processing units,cpu)601和存储器602,其中,该存储器602中存储有至少一条程序代码,该至少一条程序代码由该处理器601加载并执行以实现上述数据获取方法中服务器600所执行的操作。当然,该服务器600还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器600还可以包括其他用于实现设备功能的部件,在此不做赘述。
175.在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读介质存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的数据获取方法。
176.在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的数据获取方法。
177.以上所述仅是为了便于本领域的技术人员理解本技术的技术方案,并不用以限制本技术。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1