CN110674382B - 数据访问方法及装置、数据访问系统 - Google Patents

数据访问方法及装置、数据访问系统 Download PDF

Info

Publication number
CN110674382B
CN110674382B CN201910959357.5A CN201910959357A CN110674382B CN 110674382 B CN110674382 B CN 110674382B CN 201910959357 A CN201910959357 A CN 201910959357A CN 110674382 B CN110674382 B CN 110674382B
Authority
CN
China
Prior art keywords
target
data
user group
user
display platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910959357.5A
Other languages
English (en)
Other versions
CN110674382A (zh
Inventor
陈亮亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910959357.5A priority Critical patent/CN110674382B/zh
Publication of CN110674382A publication Critical patent/CN110674382A/zh
Application granted granted Critical
Publication of CN110674382B publication Critical patent/CN110674382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式涉及互联网技术领域,更具体地,本发明的实施方式涉及数据访问方法、数据访问装置,数据访问系统,存储介质和电子设备。所述方法包括:接收用户的访问请求;所述访问请求包括目标数据的目标地址;根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组;加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的目标搜索引擎发送目标数据查询请求。本公开能够实现根据用户不同的对用户资源的分离展示。

Description

数据访问方法及装置、数据访问系统
技术领域
本发明的实施方式涉及互联网技术领域,更具体地,本发明的实施方式涉及数据访问方法、数据访问装置,数据访问系统,存储介质和电子设备。
背景技术
本部分旨在为权利要求中陈述的本发明的实施方式提供背景或上下文,此处的描述不因为包括在本部分中就承认是现有技术。
随着互联网技术的快速发展,数据量越来越大,需要同时管理服务器数量也越来越多,且不同的数据分散在不同的服务器上,管理情况越来越复杂。面对上述的情况,Elastic公司提供了一种开源的基于ELK(Elasticsearch、Logstash、Kibana,分布式搜索引擎、数据收集引擎、分析和可视化平台)的解决方案。
发明内容
但是,在一些技术中,一方面,虽然为ELK方案提供了ELK安全插件X-PackSecurity,但其还无法实现多租户的完全隔离。用户依然能够查看到自己无权限或属于其他用户的部分资源信息;例如索引名称、索引的元数据信息等;另一方面,多个集群无法复用一套权限管理系统,需要为各个集群单独配置不同的权限管理系统,对于业务量大、业务集群多的客户使用不方便、不易于管理;再一方面,由于需要首先配置Elasticsearch的相关权限,再配置Kibana的相关权限,然后才能使用界面进行用户权限配置,导致权限配置过程过于复杂,也增加了系统管理员的工作量。
因此,在现有技术中,如何实现多租户的展示和/或权限控制隔离,以及多个集群共用一套权限管理方案,仍然缺少有效的管理方法。
为此,非常需要一种改进的数据访问方法及装置、数据访问系统、存储介质和电子设备,以实现对多租户的完全隔离,并能使得多个集群共用一套权限管理方案。
在本上下文中,本发明的实施方式期望提供一种数据访问方法及装置、数据访问系统、存储介质和电子设备。
根据本公开的一个方面,提供一种数据访问方法,包括:
接收用户的访问请求;所述访问请求包括目标数据的目标地址;
根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组;
加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的目标搜索引擎发送目标数据查询请求。
在本公开的一种示例性实施例中,不同的所述目标数据的目标地址对应不同的所述用户组信息,各所述用户组针对所述目标数据配置有不同的用户操作权限。
在本公开的一种示例性实施例中,所述访问请求还包括:
对所述目标数据的操作类型。
在本公开的一种示例性实施例中,所述确认所述用户对应的目标用户组,包括:
获取包含所述用户的候选用户组;
根据各所述候选用户组对应的用户操作权限信息确认与所述操作类型匹配的一所述候选用户组,并将该所述候选用户组确定为所述目标用户组。
在本公开的一种示例性实施例中,所述方法还包括:
在各所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
在本公开的一种示例性实施例中,所述方法还包括:
预先为所述目标用户组配置对应的所述目标展示平台。
在本公开的一种示例性实施例中,所述目标展示平台配置有唯一的展示平台索引。
在本公开的一种示例性实施例中,所述目标展示平台配置有唯一的访问入口地址。
在本公开的一种示例性实施例中,所述方法还包括:
预先配置各所述目标展示平台与对应的所述目标搜索引擎之间的映射关系,并将所述映射关系存储至目标数据库。
在本公开的一种示例性实施例中,所述加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的所述目标搜索引擎发送目标数据查询请求,包括:
根据所述映射关系获取所述目标展示平台对应的所述目标搜索引擎的地址;
触发所述目标展示平台根据所述目标搜索引擎的地址向所述目标搜索引擎发送目标数据查询请求,以使所述目标搜索引擎查询所述目标数据。
在本公开的一种示例性实施例中,所述方法还包括:
响应于一展示平台更新指令,为更新的展示平台配置对应的搜索引擎,并更新所述映射关系。
在本公开的一种示例性实施例中,所述方法还包括:
通过所述目标展示平台展示所述目标搜索引擎根据所述目标数据查询请求生成的目标数据查询结果。
在本公开的一种示例性实施例中,所述方法还包括:
接收用户的访问请求;所述访问请求包括目标数据的目标地址和操作类型;
根据所述目标地址获取所述目标数据对应的用户组信息,以获取包含所述用户的候选用户组;
基于各所述候选用户组对应的用户操作权限信息对所述操作类型进行匹配,以验证所述用户对所述目标数据的操作权限。
在本公开的一种示例性实施例中,所述方法还包括:
在验证所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
根据本公开的一个方面,提供一种数据访问装置,包括:
请求接收模块,用于接收用户的访问请求;所述访问请求包括目标数据的目标地址;
目标用户组确认模块,用于根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组;
数据查询请求触发模块,用于加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的所述目标搜索引擎发送目标数据查询请求。
在本公开的一种示例性实施例中,不同的所述目标数据的目标地址对应不同的所述用户组信息,各所述用户组针对所述目标数据配置有不同的用户操作权限。
在本公开的一种示例性实施例中,所述访问请求还包括:
对所述目标数据的操作类型。
在本公开的一种示例性实施例中,所述目标用户组确认模块,包括:
候选用户组识别单元,用于获取包含所述用户的候选用户组;
目标用户组识别单元,用于根据各所述候选用户组对应的用户操作权限信息确认与所述操作类型匹配的一所述候选用户组,并将该所述候选用户组确定为所述目标用户组。
在本公开的一种示例性实施例中,所述装置还包括:
错误提示模块,用于在各所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
在本公开的一种示例性实施例中,所述装置还包括:
展示平台配置模块,用于预先为所述目标用户组配置对应的所述目标展示平台。
在本公开的一种示例性实施例中,所述展示平台配置模块包括:
索引配置单元,用于为所述目标展示平台配置有唯一的展示平台索引。
在本公开的一种示例性实施例中,所述展示平台配置模块包括:
访问入口配置单元,用于所述目标展示平台配置有唯一的访问入口地址。
在本公开的一种示例性实施例中,所述装置还包括:
映射关系配置模块,用于预先配置各所述目标展示平台与对应的所述目标搜索引擎之间的映射关系,并将所述映射关系存储至目标数据库。
在本公开的一种示例性实施例中,所述数据查询请求触发模块,包括:
目标搜索引擎查询单元,用于根据所述映射关系获取所述目标展示平台对应的所述目标搜索引擎的地址;
目标数据查询单元,用于触发所述目标展示平台根据所述目标搜索引擎的地址向所述目标搜索引擎发送目标数据查询请求,以使所述目标搜索引擎查询所述目标数据。
在本公开的一种示例性实施例中,所述装置还包括:
映射关系更新模块,用于响应于一展示平台更新指令,为更新的展示平台配置对应的搜索引擎,并更新所述映射关系。
在本公开的一种示例性实施例中,所述装置还包括:
目标数据展示模块,用于通过所述目标展示平台展示所述目标搜索引擎根据所述目标数据查询请求生成的目标数据查询结果。
在本公开的一种示例性实施例中,所述装置还包括:
访问请求接收模块,用于接收用户的访问请求;所述访问请求包括目标数据的目标地址和操作类型;
候选用户组筛选模块,用于根据所述目标地址获取所述目标数据对应的用户组信息,以获取包含所述用户的候选用户组;
操作权限验证模块,用于基于各所述候选用户组对应的用户操作权限信息对所述操作类型进行匹配,以验证所述用户对所述目标数据的操作权限。
在本公开的一种示例性实施例中,所述装置还包括:
权限错误提示模块,用于在验证所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
根据本公开的一个方面,提供一种数据访问系统,包括:
权限管理模块,用于接收用户的访问请求,并对所述访问请求的权限进行验证;
展示平台模块,用于响应所述访问请求向指定的搜索引擎发送数据查询请求,并展示所述搜索引擎返回的数据结果;
搜索引擎模块,用于响应所述数据查询请求生成所述数据结果,并返回至指定的所述展示平台。
根据本公开的一个方面,提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据访问方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述的数据访问方法。
根据本发明实施方式的数据访问方法,通过根据用户访问请求中的目标数据的目标地址来确定用户的目标用户组,再根据目标用户组确定与其匹配的目标展示平台,从而可以利用与目标展示平台相匹配的目标搜索引擎来对目标数据进行查询,并利用该目标展示平台对数据查询结果进行展示,从而实现对用户资源的分离,以及实现对用户资源的展示分离。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的数据访问方法的流程图;
图2示意性地示出了根据本发明实施方式的数据访问方法的流程图;
图3示意性地示出了根据本发明实施方式的权限验证方法的流程图;
图4示意性地示出了根据本发明实施方式的数据访问装置的方框图;
图5示意性地示出了根据本发明实施方式的数据访问系统的方框图;
图6示出了根据本发明实施方式的存储介质的示意图;以及
图7示意性示出了根据发明实施方式的电子设备的方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提供一种数据访问方法、数据访问装置、数据访问系统、存储介质和电子设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐述本发明的原理和精神。
发明概述
本发明人发现,现有技术中,现有的ELK系统虽然可以对各个用户根据角色赋予相关资源不同的权限,但无法实现完全隔离。在Kibana界面中,用户依然能够查看到自己无权限或属于其他用户的部分资源信息(比如索引名称、索引的元数据信息等)。且多个集群无法复用一套权限管理方案,各集群都需要各自单独配置,不易于管理。并且配置过程、配置内容复杂,需要先配置Elasticsearch的相关权限,再配置Kibana的相关权限,然后才能使用界面进行用户权限配置,无法对各单元进行统一的配置。
鉴于上述内容,本发明的基本思想在于:通过根据用户访问请求中的目标数据的目标地址来确定用户的目标用户组,再根据目标用户组确定与其匹配的目标展示平台,从而可以利用与目标展示平台相匹配的目标搜索引擎来对目标数据进行查询,并利用该目标展示平台对数据查询结果进行展示,从而实现对用户资源的分离,以及实现对用户资源的展示分离。通过预先配置用户组与展示平台以及展示平台与搜索引擎的映射关系,从而可以在不同的集群中统一配置,统一管理。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面结合图1来描述根据本发明示例性实施方式的数据访问方法。
参考图1,所述数据访问方法可以包括以下步骤:
S1、接收用户的访问请求;所述访问请求包括目标数据的目标地址;
S2、根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组;
S3、加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的目标搜索引擎发送目标数据查询请求。
在本发明实施方式的数据访问方法中,通过根据用户访问请求中的目标数据的目标地址来确定用户的目标用户组,再根据目标用户组确定与其匹配的目标展示平台,从而可以利用与目标展示平台相匹配的目标搜索引擎来对目标数据进行查询,并利用该目标展示平台对数据查询结果进行展示,从而对不同用户各自的资源利用预先配置的对应的展示平台分离展示,实现在不同用户之间对用户资源的搜索过程和搜索结果的高度分离。
在步骤S1中,接收用户的访问请求;所述访问请求包括目标数据的目标地址。
在本公开的示例性实施方式中,上述的数据访问方法可以执行在服务器端。用户可以利用终端设备向服务器端发送访问请求,来查找数据,以及对数据执行一定的操作。举例来说,在访问请求中,可以包含目标数据的地址信息。例如,目标数据可以是某一运行程序的日志数据,或者用户数据,等等。此外,上述的访问请求还可以包括用户标识,以及对目标数据的操作类型;例如,只读、修改等类型。
在服务器端可以提供一Auth(权限管理控制服务)模块,利用该Auth模块来接收用户的访问请求。并可以将该权限管理控制服务模块作为唯一的用户访问入口。
S2、根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组。
在本公开的示例性实施方式中,对于资源数据来说,各资源数据可以配置有唯一的目标地址。对于一项资源数据而言,可以预先配置一个或多个用户组,各用户组可以包括一个或多个用户;且各用户组针对资源数据可以对应配置有不同的数据处理权限,例如:上传、下载、传输、删除以及读取,等等。还可以将资源数据的目标地址、对应的用户组信息以及各用户组的权限信息之间的映射关系保存在数据库中。
例如,对于一即时通信软件的日志数据来说,对应配置有多个用户组,其中,第一用户组的权限为只读权限,第二用户组的权限为下载权限,第三用户组的权限为修改权限,等等。
当然,在本公开的一些示例性实施方式中,一个用户组的权限内容可以包含多项操作权限。此外,对于用户来说,一个用户也可以同时存在于多个用户组中,使得该用户可以具有针对该资源数据的多项操作权限。
具体来说,上述的步骤S2可以包括:
步骤S21,获取包含所述用户的候选用户组;
步骤S22,根据各所述候选用户组对应的用户操作权限信息确认与所述操作类型匹配的一所述候选用户组,并将该所述候选用户组确定为所述目标用户组。
在本公开的示例性实施方式中,服务器端在接收到用户的数据访问请求后,便可以首先根据目标地址查询目标数据对应的用户组信息,根据各用户组中包含的具体用户标识进行筛选,从而筛选出包含用户的一个或多个候选用户组,从而可以根据各候选用户组对应的权限信息确定该用户的实际权限数据;然后,再将该用户当前访问请求中的操作类型与该用户的实际权限数据进行对比,从而可以将与操作类型匹配的一候选用户组作为目标用户组。
或者,在本公开的一些示例性实施方式中,在对用户权限进行确认时,也可以先根据操作类型筛选操作权限匹配的一个或多个用户组作为候选用户组,再判断各候选用户组中是否包含该用户,进而确定目标用户组。
另外,在本公开的示例性实施方式中,上述的步骤S2还可以包括:
步骤S23,在各所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
若用户当前的访问请求的操作类型与预先配置的用户权限信息匹配失败,则表明用户当前的访问请求超出预先配置的权限范围,不能执行用户当前的访问请求,并可以生成操作权限错误的提示信息,并显示在终端设备上。例如,用户的预设权限为读取,若当前访问请求的操作类型为下载,便可以生成操作权限错误提示信息。
或者,在本公开的一些示例性实施方式中,在筛选候选用户组时,若不存在用户对应的候选用户组,则说明用户不存在于目标数据对应的用户组中,用户对目标数据不存在任何的操作权限。此时,也可以生成操作权限错误提示信息。此时用户期望操作的目标数据不属于该用户,或者操作不当。
步骤S3,加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的目标搜索引擎发送目标数据查询请求。
在本公开的示例性实施方式中,对于上述的各用户组来说,可以预先为各用户组配置对应的独立的展示平台。各展示平台可以配置有独立的访问入口地址以及唯一的展示平台索引信息,并与各用户组的权限信息建立映射关系。另外,还可以为各展示平台配置唯一的展示平台名称,避免与其他展示平台索引冲突,这样,目标展示平台对应的相关信息便可以单独保存在该展示平台索引中。
在验证用户操作权限成功并确定目标用户组后,便可以允许用户对与目标用户组相匹配的目标展示平台进行访问。
通过预先为资源数据配置不同的用户组,可以将不同的用户划分在不同的用户组中;并为各用户组配置对应的展示平台,从而实现了根据用户身份对数据资源利用预先配置的展示平台进行区分展示。
在本公开的示例性实施方式中,对于各展示平台来说,可以预先为各展示平台配置对应的搜索引擎,并预先建立各展示平台与各搜索引擎的映射关系。并可以将该映射关系存储在一预设的数据库中。
举例来说,目标展示平台可以采用Kibana(分析和可视化平台)服务模块。各用户组对应配置的Kibana服务模块可以部署在同一个服务器上,此时需要为各Kibana服务模块配置不同的独立端口,以避免冲突。或者,也可以将各Kibana服务模块部署在不同的服务器上。另外,可以为Kibana服务模块配置一新的配置项:kibana.index,并将该配置项配置为唯一的、不会与其他索引冲突的名称,从而可以实现Kibana索引的唯一性。
此外,上述的搜索引擎可以采用Elasticsearch(分布式搜索引擎)服务模块。各Elasticsearch服务模块可以配置有独立的访问入口地址。
在本公开的示例性实施方式中,可以在指定数据库或者Auth模块相关联的数据存储空间中维护一Map结构,用于存储展示平台的访问入口地址和对应的搜索引擎的访问入口地址之间的映射关系,以及展示平台的访问入口地址与用户组之间的映射关系。还可以将上述的各映射关系以配置文件的形式进行存储,从而便于对用户的访问请求进行权限进行查询和验证。
在本公开的示例性实施方式中,具体来说,上述的步骤S3可以包括以下步骤:
步骤S31,根据所述映射关系获取所述目标展示平台对应的所述目标搜索引擎的地址;
步骤S32,触发所述目标展示平台根据所述目标搜索引擎的地址向所述目标搜索引擎发送目标数据查询请求,以使所述目标搜索引擎查询所述目标数据。
在确定当前的访问请求对应的目标用户组之后,便可以加载目标用户组对应的目标展示平台。同时,还可以映射关系查询与目标展示平台相匹配的目标搜索引擎的访问入口地址,并可以触发目标展示平台向与其匹配的目标搜索引擎发送目标数据查询请求,从而利用目标搜索引擎执行具体的数据查询任务。
在本公开的一些示例性实施方式中,参考图2所示,上述的方法还可以包括:
步骤S4,通过所述目标展示平台展示所述目标搜索引擎根据所述目标数据查询请求生成的目标数据查询结果。
目标搜索引擎在根据目标数据查询请求进行数据检索后,可以根据数据检索结果生成对应的目标数据查询结果。目标数据搜索引擎可以将该目标数据查询结果推送至目标展示平台,并在目标展示平台进行绘图、渲染等操作后展示,供用户查阅。
在本公开的一些示例性实施例中,基于上述内容,上述的方法还可以包括:响应于一展示平台更新指令,为更新的展示平台配置对应的搜索引擎,并更新所述映射关系。
Auth模块可以定时对配置文件进行比较和更新;例如,间隔1s、2s、5s或者7s等时间间隔定时读取配置文件的更新。当存在新增的展示平台访问入口地址时,便可以为新增展示平台配置对应的搜索引擎,并执行更新,以便新增的展示平台入口地址和搜索引擎访问入口地址能及时生效使用。
此外,在本公开的一些示例性实施例中,参考图3所示,上述的方法还可以包括:
步骤S51,接收用户的访问请求;所述访问请求包括目标数据的目标地址和操作类型;
步骤S52,根据所述目标地址获取所述目标数据对应的用户组信息,以获取包含所述用户的候选用户组;
步骤S53,基于各所述候选用户组对应的用户操作权限信息对所述操作类型进行匹配,以验证所述用户对所述目标数据的操作权限。
步骤S54,在验证所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
在本公开的一些示例性实施例中,服务器端利用Auth模块来接收用户的访问请求,并对接收的每一个访问请求都进行权限验证。一般来说,用户的访问请求可以包括目标数据的URL(Uniform Resource Locator,统一资源定位符)地址,以及对目标数据的操作类型;例如,GET(下载)、PUT(上传)、POST(传输/分享)、DELETE(删除)以及用于搜索的HEAD插件调用等操作类型。
在接收到用户的访问请求后,便可以根据预先配置的数据资源对应的用户组信息,以及各用户组预先配置的操作权限信息对当前的访问请求中的目标数据地址以及用户要求的操作类型进行判断和权限校验。并在权限校验通过时,执行用户对目标数据对应要求的操作。如果用户要求操作了不属于他的资源,或对其所属资源进行不当操作,例如只允许读的资源进行写入,则明确的进行禁止,并返回具体错误提示信息,以便对其进行警示并告知其错误原因。
综上所述,通过预先为数据资源分配多个用户组,并为各用户组配置对应的展示平台,实现根据用户的身份对数据进行分离展示。另外,通过预先为各用户组配置对应操作权限,以及为各展示平台配置对应的搜索引擎,使得用户只能操作各用户所属索引资源,且只能执行指定的操作类型,实现了对用户操作权限的有效控制,有效的对ELK系统的多租户权限进行隔离。通过上述的控制方式,实现了对用户权限的分离管控,以及展示不同权限用户不同资源的目的。
另外,通过利用建立用户组与展示平台之间的映射关系、展示平台与搜索引擎之间的映射关系的形式,实现了对权限的集中管理,实现了利用Auth服务模块进行统一管理和认证的目的。
示例性装置
在介绍了本发明示例性实施方式的数据访问方法之后,接下来,参考图4对本发明示例性实施方式的数据访问装置进行描述。
参考图4所示,本发明示例性实施方式的数据访问装置400可以包括:请求接收模块401、目标用户组确认模块402和数据查询请求触发模块403。其中:
所述请求接收模块401可以用于接收用户的访问请求;所述访问请求包括目标数据的目标地址
所述目标用户组确认模块402可以用于根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组。
所述数据查询请求触发模块403可以用于加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的所述目标搜索引擎发送目标数据查询请求。
根据本公开的示例性实施例,不同的所述目标数据的目标地址对应不同的所述用户组信息,各所述用户组针对所述目标数据配置有不同的用户操作权限。
根据本公开的示例性实施例,所述访问请求还可以包括:对所述目标数据的操作类型。
根据本公开的示例性实施例,所述目标用户组确认模块402可以包括:候选用户组识别单元、目标用户组识别单元。其中:
所述候选用户组识别单元可以用于获取包含所述用户的候选用户组。
所述目标用户组识别单元可以用于根据各所述候选用户组对应的用户操作权限信息确认与所述操作类型匹配的一所述候选用户组,并将该所述候选用户组确定为所述目标用户组。
根据本公开的示例性实施例,所述装置400还可以包括:错误提示模块。
所述错误提示模块可以用于在各所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
根据本公开的示例性实施例,所述装置400还可以包括:展示平台配置模块。
所述展示平台配置模块可以用于预先为所述目标用户组配置对应的所述目标展示平台。
根据本公开的示例性实施例,所述展示平台配置模块可以包括:索引配置单元。
所述索引配置单元可以用于为所述目标展示平台配置有唯一的展示平台索引。
根据本公开的示例性实施例,所述展示平台配置模块可以包括:访问入口配置单元。
所述访问入口配置单元可以用于所述目标展示平台配置有唯一的访问入口地址。
根据本公开的示例性实施例,所述装置400还可以包括:映射关系配置模块。
所述映射关系配置模块可以用于预先配置各所述目标展示平台与对应的所述目标搜索引擎之间的映射关系,并将所述映射关系存储至目标数据库。
根据本公开的示例性实施例,所述数据查询请求触发模块403可以包括:目标搜索引擎查询单元、目标数据查询单元。其中:
所述目标搜索引擎查询单元可以用于根据所述映射关系获取所述目标展示平台对应的所述目标搜索引擎的地址。
所述目标数据查询单元可以用于触发所述目标展示平台根据所述目标搜索引擎的地址向所述目标搜索引擎发送目标数据查询请求,以使所述目标搜索引擎查询所述目标数据。
根据本公开的示例性实施例,所述装置400还可以包括:映射关系更新模块。
所述映射关系更新模块可以用于响应于一展示平台更新指令,为更新的展示平台配置对应的搜索引擎,并更新所述映射关系。
根据本公开的示例性实施例,所述装置400还可以包括:目标数据展示模块。
所述目标数据展示模块可以用于通过所述目标展示平台展示所述目标搜索引擎根据所述目标数据查询请求生成的目标数据查询结果。
根据本公开的示例性实施例,所述装置400可以包括:访问请求接收模块、候选用户组筛选模块、操作权限验证模块以及权限错误提示模块。其中:
所述访问请求接收模块可以用于接收用户的访问请求;所述访问请求包括目标数据的目标地址和操作类型。
所述候选用户组筛选模块可以用于根据所述目标地址获取所述目标数据对应的用户组信息,以获取包含所述用户的候选用户组。
所述操作权限验证模块可以用于基于各所述候选用户组对应的用户操作权限信息对所述操作类型进行匹配,以验证所述用户对所述目标数据的操作权限。
所述权限错误提示模块可以用于在验证所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
由于本发明实施方式的数据访问装置的各个功能模块与上述数据访问方法发明实施方式中相同,因此在此不再赘述。
在介绍了本发明示例性实施方式的数据访问方法和数据访问装置之后,接下来,参考图5对本发明示例性实施方式的数据访问系统进行描述。
参考图5所示,本发明示例性实施方式的数据访问系统500可以包括:权限管理模块501、展示平台模块502和搜索引擎模块503。其中:
所述权限管理模块501可以用于接收用户的访问请求,并对所述访问请求的权限进行验证。
所述展示平台模块502可以用于响应所述访问请求向指定的搜索引擎发送数据查询请求,并展示所述搜索引擎返回的数据结果。
所述搜索引擎模块503可以用于响应所述数据查询请求生成所述数据结果,并返回至指定的所述展示平台。
在本公开的示例性实施方式中,上述的权限管理模块501可以是Auth(权限管理控制服务)模块。权限管理模块501作为用户访问的唯一入口,可以接收用户通过终端设备510发送的访问请求,并在权限管理模块501对当前接收的访问请求进行用户权限验证,以及对于后端展示平台模块访问入口地址和搜索引擎模块入口访问地址的映射关系,以及用户组与展示平台模块映射关系的管理。在权限验证通过后,将访问请求发送至对应的展示平台模块502。权限管理模块501可以对应多个展示平台模块502。展示平台模块502可以采用Kibana(分析和可视化平台)服务模块。搜索引擎模块503可以采用Elasticsearch(分布式搜索引擎)服务模块。一个展示平台模块502可以对应多个搜索引擎模块503。举例来说,一即时通讯应用和一视频云应用的日志数据使用了同一个Elasticsearch服务集群,但其索引可以各自不同。同时,可以对即时通讯应用的用户分配置一个或多个用户组,并为不同的用户组配置不同的用户权限;以及对视频云应用的用户分配置一个或多个用户组,并为不同的用户组配置不同的用户权限。
搜索引擎模块503可以发送数据查询请求至后端对应的搜索引擎模块503。搜索引擎模块503处理数据查询请求,并将数据结果返回给展示平台模块502,利用搜索引擎模块503对数据结果进行绘图、渲染等处理后将结果以友好的形式展现给用户。
上述的数据访问系统通过为数据资源配置不同的用户组,以及设置多个Kibana服务模块,并为不同的用户组配置不同的Kibana服务模块的方式,实现不同用户展示不同资源。另外,通过设置Auth模块,实现了Elasticsearch服务模块、Kibana服务模块不同,展示资源不同,以及不同操作类型的权限管控、入口地址及后端Elasticsearch服务的地址映射及请求转发,以及多ELK集群权限的统一管理。极大的简化了ELK权限管理配置的复杂性。
示例性存储介质
在介绍了本发明示例性实施方式的数据访问方法和装置、数据访问系统之后,接下来,参考图6对本发明示例性实施方式的存储介质进行说明。
参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
在介绍了本发明示例性实施方式的存储介质之后,接下来,参考图7对本发明示例性实施方式的电子设备进行说明。
图7显示的电子设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述"示例性方法"部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1中所示的步骤S1至步骤S3,或者所述处理单元710可以执行如图2中所示的步骤S1至步骤S4。
存储单元720可以包括易失性存储单元,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以包括数据总线、地址总线和控制总线。
电子设备700也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口750进行。电子设备700还包括显示单元740,其连接到输入/输出(I/O)接口750,用于进行显示。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了音频播放装置和音频分享装置的若干模块或子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (18)

1.一种数据访问方法,其特征在于,用于实现多租户的展示和/或权限控制隔离;所述方法包括:
接收用户的访问请求;所述访问请求包括目标数据的目标地址,对所述目标数据的操作类型;
根据所述目标地址获取所述目标数据对应的用户组信息,获取包含所述用户的候选用户组;根据各所述候选用户组对应的用户操作权限信息确认与所述操作类型匹配的一所述候选用户组,并将该所述候选用户组确定为目标用户组;其中,不同的所述目标数据的目标地址对应不同的所述用户组信息,各所述用户组针对所述目标数据配置有不同的用户操作权限;一项资源数据配置一个或多个用户组;一个用户存在于一个或多个用户组中;
加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的目标搜索引擎发送目标数据查询请求;其中,所述目标用户组配置有对应的所述目标展示平台,所述目标展示平台配置有唯一的展示平台索引;其中,资源数据、用户组、用户组权限之间存在映射关系,展示平台、展示平台索引、用户组权限之间存在映射关系,展示平台、与搜索引擎之间存在映射关系。
2.根据权利要求1所述的数据访问方法,其特征在于,所述方法还包括:
在各所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
3.根据权利要求1所述的数据访问方法,其特征在于,所述方法还包括:
预先为所述目标用户组配置对应的所述目标展示平台。
4.根据权利要求3所述的数据访问方法,其特征在于,所述目标展示平台配置有唯一的访问入口地址。
5.根据权利要求1或3所述的数据访问方法,其特征在于,所述方法还包括:
预先配置各所述目标展示平台与对应的所述目标搜索引擎之间的映射关系,并将所述映射关系存储至目标数据库。
6.根据权利要求5所述的数据访问方法,其特征在于,所述加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的所述目标搜索引擎发送目标数据查询请求,包括:
根据所述映射关系获取所述目标展示平台对应的所述目标搜索引擎的地址;
触发所述目标展示平台根据所述目标搜索引擎的地址向所述目标搜索引擎发送目标数据查询请求,以使所述目标搜索引擎查询所述目标数据。
7.根据权利要求6所述的数据访问方法,其特征在于,所述方法还包括:
响应于一展示平台更新指令,为更新的展示平台配置对应的搜索引擎,并更新所述映射关系。
8.根据权利要求1或6所述的数据访问方法,其特征在于,所述方法还包括:
通过所述目标展示平台展示所述目标搜索引擎根据所述目标数据查询请求生成的目标数据查询结果。
9.一种数据访问装置,其特征在于,用于实现多租户的展示和/或权限控制隔离;所述装置包括:
请求接收模块,用于接收用户的访问请求;所述访问请求包括目标数据的目标地址,对所述目标数据的操作类型;
目标用户组确认模块,用于根据所述目标地址获取所述目标数据对应的用户组信息,以确认所述用户对应的目标用户组,包括:候选用户组识别单元,用于获取包含所述用户的候选用户组;目标用户组识别单元,用于根据各所述候选用户组对应的用户操作权限信息确认与所述操作类型匹配的一所述候选用户组,并将该所述候选用户组确定为所述目标用户组;其中,不同的所述目标数据的目标地址对应不同的所述用户组信息,各所述用户组针对所述目标数据配置有不同的用户操作权限;一项资源数据配置一个或多个用户组;一个用户存在于一个或多个用户组中;
数据查询请求触发模块,用于加载与所述目标用户组匹配的目标展示平台,并触发所述目标展示平台向与所述目标用户组对应的目标搜索引擎发送目标数据查询请求;
展示平台配置模块,用于预先为所述目标用户组配置对应的所述目标展示平台;所述展示平台配置模块包括:索引配置单元,用于为所述目标展示平台配置有唯一的展示平台索引;其中,资源数据、用户组、用户组权限之间存在映射关系,展示平台、展示平台索引、用户组权限之间存在映射关系,展示平台、与搜索引擎之间存在映射关系。
10.根据权利要求9所述的数据访问装置,其特征在于,所述装置还包括:
错误提示模块,用于在各所述候选用户组对应的用户权限信息与所述操作类型不匹配时,生成操作权限错误提示信息。
11.根据权利要求9所述的数据访问装置,其特征在于,所述展示平台配置模块包括:
访问入口配置单元,用于所述目标展示平台配置有唯一的访问入口地址。
12.根据权利要求9或11所述的数据访问装置,其特征在于,所述装置还包括:
映射关系配置模块,用于预先配置各所述目标展示平台与对应的所述目标搜索引擎之间的映射关系,并将所述映射关系存储至目标数据库。
13.根据权利要求12所述的数据访问装置,其特征在于,所述数据查询请求触发模块,包括:
目标搜索引擎查询单元,用于根据所述映射关系获取所述目标展示平台对应的所述目标搜索引擎的地址;
目标数据查询单元,用于触发所述目标展示平台根据所述目标搜索引擎的地址向所述目标搜索引擎发送目标数据查询请求,以使所述目标搜索引擎查询所述目标数据。
14.根据权利要求13所述的数据访问装置,其特征在于,所述装置还包括:
映射关系更新模块,用于响应于一展示平台更新指令,为更新的展示平台配置对应的搜索引擎,并更新所述映射关系。
15.根据权利要求9或14所述的数据访问装置,其特征在于,所述装置还包括:
目标数据展示模块,用于通过所述目标展示平台展示所述目标搜索引擎根据所述目标数据查询请求生成的目标数据查询结果。
16.一种数据访问系统,其特征在于,用于实现多租户的展示和/或权限控制隔离;所述系统包括:
权限管理模块,用于接收用户的访问请求,并对所述访问请求的权限进行验证;其中,所述访问请求包括目标数据的目标地址;其中,不同的所述目标数据的目标地址对应不同的所述用户组信息,各所述用户组针对所述目标数据配置有不同的用户操作权限;一项资源数据配置一个或多个用户组;一个用户存在于一个或多个用户组中;
展示平台模块,用于响应所述访问请求向指定的搜索引擎发送数据查询请求,并展示所述搜索引擎返回的数据结果;其中,目标用户组配置有对应的目标展示平台,所述目标展示平台配置有唯一的展示平台索引;其中,资源数据、用户组、用户组权限之间存在映射关系,展示平台、展示平台索引、用户组权限之间存在映射关系,展示平台、与搜索引擎之间存在映射关系;
搜索引擎模块,用于响应所述数据查询请求生成所述数据结果,并返回至指定的所述展示平台。
17.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~8中任一项所述的数据访问方法。
18.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~8中任一项所述的数据访问方法。
CN201910959357.5A 2019-10-10 2019-10-10 数据访问方法及装置、数据访问系统 Active CN110674382B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910959357.5A CN110674382B (zh) 2019-10-10 2019-10-10 数据访问方法及装置、数据访问系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910959357.5A CN110674382B (zh) 2019-10-10 2019-10-10 数据访问方法及装置、数据访问系统

Publications (2)

Publication Number Publication Date
CN110674382A CN110674382A (zh) 2020-01-10
CN110674382B true CN110674382B (zh) 2022-06-07

Family

ID=69081801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910959357.5A Active CN110674382B (zh) 2019-10-10 2019-10-10 数据访问方法及装置、数据访问系统

Country Status (1)

Country Link
CN (1) CN110674382B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367945A (zh) * 2020-02-28 2020-07-03 平安医疗健康管理股份有限公司 报表查询方法、装置、设备及计算机可读存储介质
CN113486382A (zh) * 2021-07-27 2021-10-08 中国银行股份有限公司 一种权限控制方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7668830B2 (en) * 2004-11-29 2010-02-23 Nokia Corporation Access rights
CN101996200B (zh) * 2009-08-19 2014-03-12 华为技术有限公司 一种搜索文档的方法和装置
CN105302810B (zh) * 2014-06-12 2019-07-09 北京搜狗科技发展有限公司 一种信息搜索方法和装置
US9910880B2 (en) * 2014-07-16 2018-03-06 Wipro Limited System and method for managing enterprise user group
CN107423069A (zh) * 2017-08-02 2017-12-01 深圳市华傲数据技术有限公司 应用程序界面显示的控制方法及装置

Also Published As

Publication number Publication date
CN110674382A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
US11088903B2 (en) Hybrid cloud network configuration management
CN103067463B (zh) 用户root权限集中管理系统和管理方法
US8255409B2 (en) Systems and methods for generating a change log for files in a managed network
US20210126977A1 (en) Single Agent for Logs, Metrics, Traces, Synthetics, Security, and End Point Monitoring
US20190005067A1 (en) Multi-tenant data service in distributed file systems for big data analysis
US11681517B2 (en) Robotic process automation system with distributed download
US20130152078A1 (en) Method and system for deploying multiple distributed application stacks on a target machine
US20200328936A1 (en) Data Shipper Agent Management and Configuration Systems and Methods
CN108289098B (zh) 分布式文件系统的权限管理方法和装置、服务器、介质
CN113495921A (zh) 一种数据库集群的路由方法和装置
CN110674382B (zh) 数据访问方法及装置、数据访问系统
CN110659100B (zh) 容器管理方法、装置和设备
US8843915B2 (en) Signature-based update management
CN114356521A (zh) 任务调度方法、装置、电子设备及存储介质
US8949599B2 (en) Device management apparatus, method for device management, and computer program product
JP2007533033A (ja) 共有ファイル・システムのためのプロキシを設けるためのシステムおよび方法
US9626410B2 (en) Vertically partitioned databases
US20220150323A1 (en) User profile distribution and deployment systems and methods
Popchev et al. A framework of blockchain/IPFS-based platform for smart crop production
US11494392B2 (en) Tracking entity activity using computer generation of values for blockchain network entries
US10951600B2 (en) Domain authentication
CN109582487B (zh) 用于发送信息的方法和装置
CN105141418A (zh) 认证鉴权方法及系统
CN115878128A (zh) 一种应用程序的部署方法和装置
CN111352985A (zh) 一种基于计算机系统的数据服务平台、方法、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant