基于权限的检索方法和装置制造方法及图纸

技术编号:14483346 阅读:67 留言:0更新日期:2017-01-26 02:52
本发明专利技术公开了一种基于权限的检索方法和装置。其中,该方法包括:接收来自目标设备的关键字;在目标数据库中查找与关键字相匹配的数据,并判断查找到的数据的权限属性与检索账号的权限是否相匹配;在判断出查找到的数据的权限属性与检索账号的权限相匹配的情况下,输出查找到的数据;以及在判断出查找到的数据的权限属性与检索账号的权限不相匹配的情况下,返回在目标数据库中查找与关键字相匹配的数据,并判断查找到的数据的权限属性与检索账号的权限是否相匹配的步骤,直至遍历至目标数据库中的最后一条数据。通过本发明专利技术,解决了现有技术中由于检索方式复杂造成的检索耗时较长的技术问题。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,具体而言,涉及一种基于权限的检索方法和装置
技术介绍
当今信息社会信息数据日益剧增,通过搜索引擎技术可以大大减少信息查询的时间,可以说搜索技术已经成为当今信息查询不可缺少的重要组成部分。目前的搜索技术与用户的权限是紧密相关的,如图1描述了用户、资源信息、权限三者之间的关系。当前用户进行信息的搜索,所得到的信息数据信息是系统允许当前用户查找的,而系统不允许查找的信息会在搜索的过程中被自动过滤掉。现有技术中,对于全文搜索中权限控制的方法主要有以下2种方式:1)通过表连接的方式。简单说就是通过SQL语句对数据库中的数据进行查找,形如:“selectRole.Role_name,Camera.Camera_namefromRole,CamerawhereRole.Camera_id=Camera.Camera_id”。将要搜索的信息表和权限列表分别用SQL语句进行查找,将查找出来的数据进行比对,最终输出匹配的数据,数据资源列表和用户权限列表如表1和表2所示,资源数据查找流程如图2所示,主要包括如下步骤S201至步骤S208:S201:用户登录搜索系统;S202:输入关键字进行查找;S203:查找数据表;S204:判断是否匹配上表项,若判断结果为是,执行步骤S205,若判断结果为否,执行步骤S208;S205:比对操作权限表;S206:判断是否有操作权限,若判断结果为是,执行步骤S207,若判断结果为否,返回步骤S203,重新查找数据表;S207:输出匹配数据;S208:判断是否是数据表最后一行的数据,若判断结果为是,结束流程,若判断结果为否,返回步骤S203,重新查找数据表。表1Camera_nameCamera_idDevice_ipOrg_idmonipoint.......Camera11192.168.0.1主控中心1………Camera22192.168.0.2浙江1…………Camera33192.168.0.3杭州1...........………………………………………………………………………表2Role_idRole_nameCamera_id………1Name11…2Name22....3Name33.....…….......……………2)通过键值(key)的方式,将用户的权限(Role)作为键值和资源信息的id号一同存放在缓存(cache)中,格式如图3所示。当用户进行查找时,先判断当前用户匹配哪个权限角色,再对权限角色后面字段资源信息的id号进行查找,根据id号匹配资源数据表,输出匹配的数据,整个搜索操作流程如图4所示,主要包括如下步骤S401至步骤S409:S401:用户登录搜索系统;S402:输入关键字进行查找;S403:查找缓存列表;S404:判断是否匹配上当前用户权限角色,若判断结果为是,执行步骤S405,若判断结果为否,执行步骤S409;S405:查找权限角色中对应的缓存资源列表;S406:匹配缓存资源表;S407:判断是否查找到匹配关键字资源,若判断结果为是,执行步骤S408,若判断结果为否,返回步骤S403,重新查找缓存列表;S408:输出匹配数据;S409:判断是否是缓存表最后一行的数据,若判断结果为是,结束流程,若判断结果为否,返回步骤S403,重新查找缓存列表。以上两种实现方式虽然能够进行数据的搜索,但是在通过关键字(keyword)进行搜索的应用方面存在一定缺陷,下面对上述2种方式的缺陷进行详述:通过上述第一种方式来对关键字进行搜索。从表1、表2和图2中明显可以看出,通过表连接的方式一次只能对一张数据表进行查找,这就需要对2张数据表格分别进行查找,在数据表中找出匹配关键字的设备后,还需要再去匹配当前用户的权限,步骤比较繁琐。当数据库中有大量的设备,且用户拥有多个角色,每个角色有大量不同操作权限的时候,这种搜索方式就会变得复杂度很高。举例说明:一个操作系统中注册有10万个监控点,数据表格中就有10万行表项,系统中规定的操作权限总共有100种,一个用户能分配到的权限最多也可能会有100种。通过上述方式进行搜索时间复杂度将达到O(100000*100),这对于任何服务器来说,这种复杂度的搜索方式是不可实现的。由此可见,一旦出现上述时间复杂度达到O(100000*100),在这种情况下,用表连接的方式是不可行的,因为lucene通过关键字为索引搜索的结构决定无法直接将两块索引数据通过外连接方式搜索,通过图2可以看出两个集合间的二重循环,内存量大,当大到一定程度,对java程序来说会出现内存溢出,进程崩溃。通过上述第二种方式来对关键字进行搜索,首先需要在缓存中查找当前用户所对应的角色(Role),一个用户可能会有多个角色对应,且每个角色中有多个监控点资源。如图3所示,通过关键字查找表中的数据,如果输入的不是资源设备的id号,则查找会失败,因为表中只有资源设备的id号没有其它字段。如果要保证关键字查找成功,需要把所有资源id号所对应设备的所有信息都加到缓存中。如下表3所示,表中每一个角色所对应监控点的所有信息都添加到缓存中,其中有大量的资源信息重复添加到不同的角色中。根据关键字查找过程中,当前用户会去匹配表中每一个角色。当查找到匹配的角色后,结果会返回一个角色下的资源列表,再根据关键字对角色下的资源列表进行二次查找。这种方式会增加缓存的负担,还同时消耗等多的搜索时间,当监控点数目很大的时候,该查找方式同样也不可行,因为数据量大且大量重复会导致维护复杂,容易出现数据不一致。表3针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种基于权限的检索方法和装置,以至少解决现有技术中由于检索方式复杂造成的检索耗时较长的技术问题。根据本专利技术实施例的一个方面,提供了一种基于权限的检索方法,包括:接收来自目标设备的关键字,其中,所述目标设备为登录有检索账号的设备;在目标数据库中查找与所述关键字相匹配的数据,并判断查找到的数据的权限属性与所述检索账号的权限是否相匹配,其中,所述目标数据库中存储有多条数据,并存储有所述多条数据中的每一条数据的权限属性,所述多条数据中的数据Di包括所述数据Di的权限属性,i依次取1至n,n为所述多条数据中数据的条数;在判断出所述查找到的数据的权限属性与所述检索账号的权限相匹配的情况下,输出所述查找到的数据;以及在判断出所述查找到的数据的权限属性与所述检索账号的权限不相匹配的情况下,返回在所述目标数据库中查找与所述关键字相匹配的数据,并判断查找到的数据的权限属性与所述检索账号的权限是否相匹配的步骤,直至遍历至所述目标数据库中的最后一条数据。进一步地,判断查找到的数据的权限属性与所述检索账号的权限是否相匹配包括:判断第一字段是否包括第二字段,其中,所述第一字段为表示所述权限属性的字段,所述第二字段为表示所述检索账号的权限的字段,其中,在判断出所述第一字段包括所述第二字段的情况下,确定所述查找到的数据的权限属性与所述检索账号的权限相匹配。进一步地,在目标数据库中查找与所述关键字相匹配的数据包括:根据所述关键字生成索引;以及在所述目标数据库中查找与所述索引相匹配的数据。进一步地,在接收来自目标设备的本文档来自技高网
...
基于权限的检索方法和装置

【技术保护点】
一种基于权限的检索方法,其特征在于,包括:接收来自目标设备的关键字,其中,所述目标设备为登录有检索账号的设备;在目标数据库中查找与所述关键字相匹配的数据,并判断查找到的数据的权限属性与所述检索账号的权限是否相匹配,其中,所述目标数据库中存储有多条数据,并存储有所述多条数据中的每一条数据的权限属性,所述多条数据中的数据Di包括所述数据Di的权限属性,i依次取1至n,n为所述多条数据中数据的条数;在判断出所述查找到的数据的权限属性与所述检索账号的权限相匹配的情况下,输出所述查找到的数据;以及在判断出所述查找到的数据的权限属性与所述检索账号的权限不相匹配的情况下,返回在所述目标数据库中查找与所述关键字相匹配的数据,并判断查找到的数据的权限属性与所述检索账号的权限是否相匹配的步骤,直至遍历至所述目标数据库中的最后一条数据。

【技术特征摘要】
1.一种基于权限的检索方法,其特征在于,包括:接收来自目标设备的关键字,其中,所述目标设备为登录有检索账号的设备;在目标数据库中查找与所述关键字相匹配的数据,并判断查找到的数据的权限属性与所述检索账号的权限是否相匹配,其中,所述目标数据库中存储有多条数据,并存储有所述多条数据中的每一条数据的权限属性,所述多条数据中的数据Di包括所述数据Di的权限属性,i依次取1至n,n为所述多条数据中数据的条数;在判断出所述查找到的数据的权限属性与所述检索账号的权限相匹配的情况下,输出所述查找到的数据;以及在判断出所述查找到的数据的权限属性与所述检索账号的权限不相匹配的情况下,返回在所述目标数据库中查找与所述关键字相匹配的数据,并判断查找到的数据的权限属性与所述检索账号的权限是否相匹配的步骤,直至遍历至所述目标数据库中的最后一条数据。2.根据权利要求1所述的检索方法,其特征在于,判断查找到的数据的权限属性与所述检索账号的权限是否相匹配包括:判断第一字段是否包括第二字段,其中,所述第一字段为表示所述权限属性的字段,所述第二字段为表示所述检索账号的权限的字段,其中,在判断出所述第一字段包括所述第二字段的情况下,确定所述查找到的数据的权限属性与所述检索账号的权限相匹配。3.根据权利要求1所述的检索方法,其特征在于,在目标数据库中查找与所述关键字相匹配的数据包括:根据所述关键字生成索引;以及在所述目标数据库中查找与所述索引相匹配的数据。4.根据权利要求1所述的检索方法,其特征在于,在接收来自目标设备的关键字之前,所述检索方法还包括:设置所述多条数据中的每一条数据的权限属性。5.根据权利要求4所述的检索方法,其特征在于,设置所述多条数据中的每一条数据的权限属性包括:获取字段Li,其中,所述字段Li为表示所述数据Di的权限属性的字段;以及将所述字段Li与所述数据Di对应存储至所述目标...

【专利技术属性】
技术研发人员:叶斯佳陈宏伟陈振波
申请(专利权)人:杭州海康威视系统技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1