本发明属于全文搜索及数据安全领域,具体地,涉及一种全文搜索系统数据访问权限控制方法、系统及介质。
背景技术:
1、在互联网+时代,许多行业开始涌现出适合自身行业特点的全文搜索系统,以实现快速、精确的数据检索。数据作为企业资产的重要组成部分,具有重大价值,数据外泄可能给企业带来严重的经济损失,并导致核心竞争力的丧失。因此,如何保证用户只能搜索到自己权限范围内的数据,防止数据泄漏,保障搜索时的数据安全成为企业级全文搜索系统需要考虑的重要问题。目前已有的数据访问权限控制方法大多基于关系型数据库实现,并不适用于以非关系型数据库为基础的全文搜索系统。
2、中国专利文献zl201410375662.7,公开了一种数据访问权限控制方法,属于数据权限控制领域。该方法包括以下步骤:a)建立数据模型;b)建立数据类型之间的继承体系;c)建立用户模型;d)创建数据访问权限领域专用语言;e)定义数据访问权限;f)建立数据访问代理;g)进行权限判断;h)将结果通过数据访问代理返回给用户。然而,虽然该专利文献提到了一种适用于非关系型数据库的数据访问权限控制方法,但是该方法并不适合只关注数据搜索业务的全文搜索系统。全文搜索系统只需保证用户搜索时不存在数据越权访问的问题,用户能够访问那些数据是由数据管理系统(业务系统)负责。因此,该方法需要业务系统配合进行数据权限体系改造,对业务系统数据权限控制体系有侵入风险,存在一定的缺陷。
3、中国专利文献zl201510434185.1,公开了一种实现数据访问权限控制的方法,该方法包括:初始化;建立各个容器之间的关联;当用户访问系统的数据库对象时,查找对应的标识符;生成查询限定表达式;构造orm表达式;访问结果返回。然而,该专利文献适用于使用关系型数据库作为存储的应用系统,利用sql实现并不能解决利用分词查询方式实现全文搜索。
4、因此,全文搜索领域急需一种灵活的、能够适配不同权限控制体系的数据访问权限控制方法。
技术实现思路
1、针对现有技术中的缺陷,本发明的目的是提供一种全文搜索系统数据访问权限控制方法、系统及介质。
2、根据本发明提供的一种全文搜索系统数据访问权限控制方法,包括:
3、业务系统权限体系接入步骤,业务系统动态配置权限维度信息和用户权限获取接口信息到权限控制组件,并在权限控制组件中进行数据组装;
4、数据同步步骤,权限控制组件对组装好的数据进行合并处理后,最终由数据同步组件写入储存中心;
5、数据查询步骤,通过用户权限与数据权限匹配,结合用户查询时输入条件,组合得到查询语句,进行查询;
6、输出步骤,将用户权限范围内的符合用户查询条件的内容输出。
7、优选地,所述业务系统权限体系接入步骤,包括:
8、权限维度信息配置步骤,业务系统根据自身业务授权场景配置权限维度信息,权限维度信息,包括:授权维度信息与权限规则信息;
9、用户权限获取接口配置步骤,业务系统提供能根据用户名获取该用户的用户权限对象集接口,并将接口地址配置到权限控制组件;
10、组装数据步骤,在权限控制组件中对配置的权限维度信息数据进行组装。
11、优选地,所述组装好的数据,包括:主体内容和权限内容;
12、权限内容包括:数据授权标记、数据权限对象集白名单和数据权限对象集黑名单;数据授权标记,存在两种状态,为0时表示该数据不授权,在数据查询时该数据能够被所有用户搜索到,为1时表示该数据授权,表示在数据查询时该数据只被有权限的用户搜索到。
13、优选地,所述数据同步步骤,包括:
14、数据推送步骤,业务系统将组装和处理好的数据通过数据同步请求推送到搜索系统;
15、数据写入步骤,数据同步组件将搜索系统中的数据写入存储中心;存储中心用于存储和索引业务数据。
16、优选地,所述数据推送步骤中,在接收到同步请求后,权限控制组件会对组装好的数据中的数据权限对象集信息进行合并处理。
17、优选地,所述数据查询步骤,包括:
18、获取用户权限步骤,搜索系统在接收到用户搜索请求后,权限控制组件会调用业务系统权限体系接入时配置的用户权限获取接口去获取用户权限对象集信息并对用户权限对象集信息进行合并处理;
19、组装查询条件步骤,搜索组件将权限组件合并处理后的用户权限信息作为查询条件拼接到查询语句中,进行查询,并返回用户权限范围内的符合用户查询条件的内容。
20、优选地,所述数据权限对象集信息处理方式,包括:将同一数据权限对象集中的权限对象拼接成一个字符串,不同权限对象之间使用空格符进行分隔,再推送到搜索系统。
21、优选地,用户权限对象集信息处理方式,包括:将同一用户权限对象集中的权限对象拼接成一个字符串,不同元素之间使用空格符进行分隔。
22、一种全文搜索系统数据访问权限控制系统,包括:
23、业务系统权限体系接入模块,用于业务系统动态配置权限维度信息和用户权限获取接口信息到权限控制组件,并在权限控制组件中进行数据组装;
24、数据同步模块,用于权限控制组件对组装好的数据进行合并处理后,最终由数据同步组件写入储存中心;
25、数据查询模块,用于通过用户权限与数据权限匹配,结合用户查询时输入条件,组合得到查询语句,进行查询;
26、输出模块,用于将用户权限范围内的符合用户查询条件的内容输出。
27、一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现全文搜索系统数据访问权限控制方法的步骤。
28、与现有技术相比,本发明具有如下的有益效果:
29、1、通过设定保证用户只会搜索到自己权限范围内符合查询条件的内容,本发明解决了全文搜索系统下用户能够查看哪些数据的问题,保障了搜索时的数据安全;
30、2、通过数据访问权限控制方法支持动态配置权限维度来灵活适配不同业务系统的权限控制体系,本发明满足不同业务系统对数据搜索权限控制的需求;
31、3、通过数据访问权限与业务逻辑分离,使用代理方式实现,本发明对开发者透明,易用、可扩展、可移植,具有很好的推广应用价值;
32、4、通过有效避免采用sql语句拼接的方式所存在的性能问题以及安全问题,本发明的性能和安全性能更好。
1.一种全文搜索系统数据访问权限控制方法,其特征在于,包括:
2.根据权利要求1所述的全文搜索系统数据访问权限控制方法,其特征在于,所述业务系统权限体系接入步骤,包括:
3.根据权利要求2所述的全文搜索系统数据访问权限控制方法,其特征在于,所述组装好的数据,包括:主体内容和权限内容;
4.根据权利要求1所述的全文搜索系统数据访问权限控制方法,其特征在于,所述数据同步步骤,包括:
5.根据权利要求4所述的全文搜索系统数据访问权限控制方法,其特征在于,所述数据推送步骤中,在接收到同步请求后,权限控制组件会对组装好的数据中的数据权限对象集信息进行合并处理。
6.根据权利要求1所述的全文搜索系统数据访问权限控制方法,其特征在于,所述数据查询步骤,包括:
7.根据权利要求5所述的全文搜索系统数据访问权限控制方法,其特征在于,所述数据权限对象集信息处理方式,包括:将同一数据权限对象集中的权限对象拼接成一个字符串,不同权限对象之间使用空格符进行分隔,再推送到搜索系统。
8.根据权利要求6所述的全文搜索系统数据访问权限控制方法,其特征在于,用户权限对象集信息处理方式,包括:将同一用户权限对象集中的权限对象拼接成一个字符串,不同元素之间使用空格符进行分隔。
9.一种全文搜索系统数据访问权限控制系统,其特征在于,包括:
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的全文搜索系统数据访问权限控制方法的步骤。
