CN114840868B - 数据访问方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据访问方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114840868B CN114840868B CN202210776249.6A CN202210776249A CN114840868B CN 114840868 B CN114840868 B CN 114840868B CN 202210776249 A CN202210776249 A CN 202210776249A CN 114840868 B CN114840868 B CN 114840868B
- Authority
- CN
- China
- Prior art keywords
- data
- path
- user
- request
- authority
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种数据访问方法,应用于用户数据模型为多层级树形结构的系统,该方法在用户数据模型中存储根用户对象到当前用户对象的绝对路径,通过访问范围路径来描述用户的数据访问范围权限所限定的用户对象范围,并依据访问范围路径来动态更新查询语句,查询语句将访问范围路径与用户的第一组织路径匹配,以获得符合用户的数据访问范围权限的数据,可在一次查询中直接获取目标数据中符合数据访问范围权限的数据,提高了查询效率,且对数据库的处理能力要求低,在数据量大时也能够保证数据库的正常运行。
Description
技术领域
本发明涉及数据访问技术领域,尤其是涉及一种数据访问方法、装置、电子设备及计算机可读存储介质。
背景技术
在数据信息时代,多数业务系统将业务数据存储于数据库中。安装有应用程序的终端设备,通过运行应用程序向服务器发送业务数据的访问请求,服务器根据访问请求返回终端设备需要访问的数据。
在大型业务系统中,通常需要对请求对象按部门、组织等进行层级组织划分,根据层级组织进行数据访问的权限控制。在常见的权限控制方法中,基于角色的访问控制(role-based access control RBAC)在用户集合与权限集合之间建立一个角色集合,每一种角色对应一组相应的权限。通过将权限赋予角色,再将角色分配给用户,该用户将获得该角色对应的所有权限。对于一项业务数据,用户的数据访问范围权限可依据层级组织划分。
服务器在根据用户发起的访问请求进行数据查询时,通常包括步骤:一,获取用户发起的数据访问请求;二,根据该数据访问请求,查询该用户的可访问组织范围;三,查询可访问组织范围内的所有用户id;四,将所查询的用户id逐一作为查询条件,从业务数据库中查询符合查询条件的业务数据,并作为查询结果返回。这种方法由于需要进行多次数据查询,较为繁琐,查询效率低下,且当可访问的组织范围内的用户数据量大时,在业务数据查询中容易引起数据库系统错误。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种数据访问方法,当可访问的组织范围内的对象数据量大时,不会引起数据库系统错误,且查询效率高。
本发明是通过以下技术方案实现的:一种数据访问方法,应用于用户数据模型为多层级树形结构的系统,包括步骤:
在所述用户数据模型中存储用户对象的第一组织路径,所述第一组织路径为所述用户数据模型中根用户对象到对应用户对象的绝对路径;
获取请求对象的数据访问请求,根据所述数据访问请求获取请求路径和所述请求对象的数据访问范围权限,所述请求路径指向与所述用户对象关联的目标数据;所述数据访问范围权限指示所述请求对象可访问的数据范围为目标用户对象或目标用户对象及其后代用户对象的数据;
根据所述数据访问范围权限确定访问范围路径,所述访问范围路径为所述用户数据模型中根用户对象到所述目标用户对象的绝对路径;
将所述用户数据模型中的数据与所述目标数据按照相同的所述用户对象进行对应,形成临时数据表;在所述临时数据表中将所述访问范围路径与所述第一组织路径进行匹配,确定符合预设匹配规则的第一组织路径对应的所述目标数据为所述数据访问请求对应的数据。
相对于现有技术,本发明提供一种数据访问方法通过访问范围路径来描述用户的数据访问范围权限所限定的用户对象范围,并依据访问范围路径来动态更新查询语句,以获得符合用户的数据访问范围权限的数据。而且,在用户数据模型中存储根用户对象到当前用户对象的绝对路径,并与访问范围路径进行匹配,可在一次查询中直接获取目标数据中符合数据访问范围权限的数据,提高了查询效率,且对数据库的处理能力要求低,在数据量大时也能够保证数据库的正常运行。
进一步地,所述预设匹配规则为所述第一组织路径中包含所述访问范围路径的预设数据量字符,或为所述第一组织路径与所述访问范围路径的字符完全匹配。
进一步地,根据所述数据访问请求获取所述请求对象的数据访问范围权限,包括步骤:根据所述数据访问请求获取所述请求对象的数据访问权限,所述数据访问权限与所述数据访问范围权限关联;若所获取的所述数据访问权限限定的数据资源与所述目标数据匹配,则获取与所述数据访问权限关联的数据访问范围权限。
进一步地,所述目标用户对象为根用户对象或所述请求对象的父用户对象或所述请求对象。
进一步地,在所述用户数据模型中存储用户对象的父组织标记,所述父组织标记指向用户对象的父用户对象;根据所述父组织标记获取第二组织路径,所述第二组织路径为所述根用户对象到所述父组织标记指向的父用户对象的绝对路径;
根据所述数据访问范围权限确定访问范围路径,包括步骤:当所述目标用户对象为所述根用户对象,所述访问范围路径取空;当所述目标用户对象为所述请求对象的父用户对象,所述访问范围路径取所述请求对象对应的第二组织路径;当所述目标用户对象为所述请求对象,所述访问范围路径取所述请求对象的第一组织路径。
基于同一发明构思,本发明还提供一种数据访问装置,应用于用户数据模型为多层级树形结构的系统,包括:
第一组织路径存储模块,用于在所述用户数据模型中存储用户对象的第一组织路径,所述第一组织路径为所述用户数据模型中根用户对象到对应用户对象的绝对路径;
请求获取模块,用于获取请求对象的数据访问请求,根据所述数据访问请求获取请求路径和所述请求对象的数据访问范围权限,所述请求路径指向与所述用户对象关联的目标数据;所述数据访问范围权限指示所述请求对象可访问的数据范围为目标用户对象或目标用户对象及其后代用户对象的数据;
查询参数获取模块,用于根据所述数据访问范围权限确定访问范围路径,所述访问范围路径为所述用户数据模型中根用户对象到所述目标用户对象的绝对路径;
查询模块,用于将所述用户数据模型中的数据与所述目标数据按照相同的所述用户对象进行对应,形成临时数据表;在所述临时数据表中将所述访问范围路径与所述第一组织路径进行匹配,确定符合预设匹配规则的第一组织路径对应的所述目标数据为所述数据访问请求对应的数据。
进一步地,所述预设匹配规则为所述第一组织路径中包含所述访问范围路径的预设数据量字符,或为所述第一组织路径与所述访问范围路径的字符完全匹配。
进一步地,查询参数获取模块中,根据所述数据访问请求获取所述请求对象的数据访问范围权限,包括步骤:根据所述数据访问请求获取所述请求对象的数据访问权限,所述数据访问权限与所述数据访问范围权限关联;若所获取的所述数据访问权限限定的数据资源与所述目标数据匹配,则获取与所述数据访问权限关联的数据访问范围权限。
基于同一发明构思,本发明还提供一种电子设备,包括:
处理器;
存储器,用于存储由所述处理器执行的计算机程序;
其中,所述处理器执行所述计算机程序时实现上述方法的步骤。
基于同一发明构思,本发明还提供一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现上述方法的步骤。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为本申请实施例提供的一种数据访问方法的实施环境示意图;
图2为一种基于角色的访问控制的系统的数据结构示意图;
图3为实施例提供的一种数据访问方法的流程示意图;
图4为一示例性的角色权限配置功能页面的示意图;
图5为实施例的数据访问装置的结构示意图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
请参阅图1,其为本申请实施例提供的一种数据访问方法的实施环境示意图,该实施环境包括:终端设备101和服务器102。终端设备101可以是智能手机、游戏主机、台式计算机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机中的至少一种。终端设备101能够运行应用程序的客户端,如浏览器客户端、业务程序客户端等等。
服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器102可以通过有线或无线通信方式与终端设备101进行直接或间接地连接,本申请对此不加以限定。
基于上述实施环境,本申请实施例提供了一种数据访问方法,数据的请求对象可通过终端设备101发起数据访问请求,终端设备101将数据访问请求发送至服务器102,服务器102执行该数据访问方法后,得到数据访问请求对应的业务数据,服务器102将该业务数据返回至终端设备101中。
本申请实施例提供了一种数据访问方法可应用于一种基于角色的访问控制的系统,请参阅图2,其为该系统的数据结构示意图,该系统包括用户数据模型、角色模型和数据资源模型。其中,用户数据模型为包括多个用户对象的多层级树形结构,对于任一层级的用户对象,其上一层级的用户对象为其父用户对象,其下一层级的用户对象为其子用户对象,其下一层级至最下层层级的用户对象统称为其后代用户对象。其中处于第一层级的用户对象为根用户对象,根用户对象无父用户对象。用户数据模型中针对每个用户对象存储有用户属性字段,包括用户标识(id)、用户类型等,其中,用户标识用于对用户对象进行唯一性标记;用户类型与用户对象所在的层级对应,用于区分用户对象的所处层级。在本实施例中,用户对象可以是个人或组织,如在一具体实施中,最下层层级的用户对象为个人用户,个人用户的父用户对象为部门组织,部门组织的父用户对象为公司组织。
角色模型包括多个角色对象,针对每个角色对象存储有角色标识,角色对象可与用户对象进行关联。
数据资源模型包括多个数据资源对象,数据资源对象对应系统中存储的一种数据资源,针对每个数据资源对象存储的字段包括数据资源标识和数据资源路径等,根据数据资源路径可以访问对应数据资源对象的指向的数据资源,数据资源路径可以为url的形式。数据资源对象与角色对象进行关联,角色对象所关联的数据资源对象即该角色对象所具有的数据访问权限,与该角色对象关联的用户对象可获得该角色对象的数据访问权限。
一种数据资源中包括多条数据,在系统的需要进行访问权限控制的数据资源中,每一数据均与产生该数据的用户对象进行关联,具体可通过在每一数据中存储用户对象的用户标识来实现关联。
请参阅图3,其为本申请实施例提供的一种数据访问方法的流程示意图,该方法包括步骤201至步骤204。
步骤201:在用户数据模型中存储用户对象的第一组织路径,该第一组织路径为用户数据模型中根用户对象到对应用户对象的绝对路径。
在一具体实施中,组织路径例如为“1.3.6.”,其中1为根用户对象的用户标识,3为根用户对象的子用户对象的用户标识,6为该组织路径对应的用户对象的用户标识,以“.”作为用户标识的分割符号和组织路径的结束标记。
步骤202:获取请求对象的数据访问请求,根据数据访问请求获取请求对象的请求信息。
在本实施例中,请求对象对应一个用户对象,请求对象通过对应的用户账号实现应用程序的客户端的登录,并通过客户端发送数据访问请求至服务器,以访问数据库中与数据访问请求对应的数据,或将数据存储在数据库中等。
请求对象的请求信息包括请求对象的权限信息和请求路径,其中,权限信息包括与请求对象关联的角色对象信息,以及与角色对象关联的数据访问权限和数据访问范围权限等,其中,数据访问权限为可以对某种数据资源进行查看、新增、删除或修改等操作的权限,数据资源是按照产生数据的行为特征、事件特征或用户特征的分类,如页面点击量、新用户访问量、用户留存率等。数据访问范围权限为可以访问某个用户对象范围内的某种数据资源的权限,用户对象范围可以根据权限的控制需求设定为某个目标用户对象或目标用户对象及其后代用户对象,如设定用户对象范围为根用户对象及其后代用户对象,即全局组织的全部用户;设定用户对象范围为请求对象的父用户对象及其子用户对象,即请求对象所在组织的全部用户;设定用户对象范围为请求对象的父用户对象及其后代用户对象,即请求对象所在组织及子组织的全部用户;设定用户对象范围为仅请求对象等。数据访问范围权限与数据访问权限关联,以针对所关联的数据访问权限限定的数据资源进行数据访问范围的限制。
请求对象的权限信息是请求对象所关联的角色对象的权限,角色对象的权限可以由系统用户通过系统的权限配置功能进行配置。请参阅图4,其为一示例性的角色权限配置功能页面的示意图,设置角色名称为部门管理员,为其进行权限的配置,包括配置其可访问的数据资源及可访问数据资源的数据访问范围权限,通过在页面上多项勾选或下拉选项实现。如图4所述,关联部门管理员角色的请求对象可以访问其所在部门及子部门的全部用户的“数据统计”菜单下的所有数据资源。
请求路径指向请求对象请求访问的目标数据,请求路径即为目标数据对应的数据资源对象的数据资源路径,目标数据为系统中需要进行访问权限控制的数据资源的数据,每一目标数据与产生该目标数据的用户对象关联。
在一可选的实施例中,根据数据访问请求获取请求对象的请求信息,进一步包括步骤:根据数据访问请求获取请求对象的数据访问权限和请求路径;若所获取的所述数据访问权限限定的数据资源与请求路径的目标数据匹配,则获取与所述数据访问权限关联的数据访问范围权限。
本申请实施例不限定数据访问请求的类型,示例性的,数据访问请求可以为数据下载请求,也可以为数据查看请求,也可以为数据操作请求。
步骤203:根据请求信息中的权限信息确定访问范围路径。
具体地,根据权限信息中的数据访问范围权限确定访问范围路径,访问范围路径为用户数据模型中根用户对象到数据访问范围权限所限定的目标用户对象的绝对路径。
步骤204:根据访问范围路径更新查询语句(sql)并执行该查询语句,获取数据访问请求对应的数据。
查询语句为用于存取数据以及查询、更新和管理关系数据库的编程语言,查询语句可以提前编辑预设格式进行存储,在预设时将访问范围路径作为查询语句的查询参数。在执行步骤204时,取出预设格式的查询语句并通过新获取的访问范围路径更新查询语句,执行更新的查询语句后,可从系统数据库中获取数据访问请求对象的数据。
在一可选实施例中,步骤204中执行查询语句时,包括步骤:将用户数据模型与请求路径指向的目标数据按照相同的用户对象进行对应,形成临时数据表,具体可通过用户标识字段来确认为相同的用户对象;在临时数据表中通过访问范围路径与第一组织路径进行匹配,获取符合预设匹配规则的组织路径所对应的数据,该数据为数据访问请求对应的数据。
其中,匹配规则可以是访问范围路径与第一组织路径完全匹配;也可以是访问范围路径与第一组织路径部分匹配,可预设部分匹配的字符数量,如第一组织路径中包含访问范围路径的全部字符,具体可根据实际需求进行设置。
更具体的,在查询语句中,可通过left join将用户模型与请求路径指向的数据通过用户标识进行关联,在where条件内添加访问范围路径与组织路径的匹配规则,查询语句具体为:
“select 请求字段 from 目标数据 left join 用户数据模型 on (目标数据存储的用户标识=用户数据模型存储的用户标识)
where 1 = 1
[dataScope]and u.path like '$访问范围路径$%'[/dataScope]”
或者,可通过在DAO类的方法中添加自定义注解请求对象的数据访问范围权限,通过注解的配置值定义请求路径指向的数据关联用户数据模型的字段名称。在获得请求对象的访问范围路径后,通过注解的配置值动态关联用户数据模型。
在一可选的实施例中,还包括步骤:在所述用户数据模型中存储用户对象的父组织标记,所述父组织标记指向用户对象的父用户对象,具体可以是父用户对象的用户标识。
步骤203中,根用户对象到数据访问范围权限所限定的目标用户对象的绝对路径可以通过查询用户模型中请求对象的第一组织路径并通过截取该第一组织路径来获得。或者,可以通过查询用户模型中请求对象的父级组织标记并根据父级组织标记对应的父用户对象来生成,具体包括步骤:根据父组织标记获取第二组织路径,第二组织路径为根用户对象到所述父组织标记指向的父用户对象的绝对路径。
步骤203进一步包括步骤:当数据访问范围权限限定的目标用户对象为根用户对象,访问范围路径取空;当数据访问范围权限限定的目标用户对象为所述请求对象的父用户对象,访问范围路径取第二组织路径;当数据访问范围权限限定的目标用户对象为请求对象,访问范围路径取第一组织路径。
在一可选的实施例中,请求对象发起数据访问请求前,需要在客户端完成登录。在请求对象登录成功后,将请求对象的权限信息和用户信息存储于客户端缓存,并将缓存的key放置在cookie。具体可选用Auth对象对请求对象的权限信息和用户信息进行封装后缓存,在Auth对象中,使key为数据类型权限或操作功能权限,使value为数据访问范围权限。
在请求对象发起数据访问请求时,客户端对数据访问请求进行拦截,具体可通过RequestFilter实现;同时,从cookie中取出key,从缓存中取出包含请求对象的权限信息和用户信息的Auth对象,并设置在数据访问请求中;此后将数据访问请求发送至服务器中。
服务器在获取请求对象的数据访问请求后,还包括步骤:拦截查询语句,判断查询语句中是否带有数据访问范围标志位,若查询语句中不带有数据访问范围标志位,则直接执行该查询语句,获取数据访问请求对应的数据;若查询语句中带有数据访问范围标志位时,去除该数据访问范围标志位的标识符;判断该查询语句是否为异步处理的请求,若是则可直接从查询语句的查询参数中获取请求对象的权限信息;若不是异步处理的请求则可通过AuthUtil工具类的getAuth()方法从数据访问请求中获取Auth对象,通过AuthUtil工具类的getCurrentRequestPath()方法从数据访问请求中获取请求路径,通过AuthUtil工具类的getDataScope(String url)方法从Auth对象中获取请求路径对应的目标数据的数据访问范围权限。
相对于现有技术,本发明通过访问范围路径来描述用户的数据访问范围权限所限定的用户对象范围,并依据访问范围路径来动态更新查询语句,以获得符合用户的数据访问范围权限的数据。而且,在用户数据模型中存储根用户对象到当前用户对象的绝对路径,并与访问范围路径进行匹配,可在一次查询中直接获取目标数据中符合数据访问范围权限的数据,提高了查询效率,且对数据库的处理能力要求低,在数据量大时也能够保证数据库的正常运行。
基于同一发明构思,本发明还提供一种数据访问装置,请参阅图5,其为本实施例的数据访问装置的结构示意图,该装置包括请求获取模块301、查询参数获取模块302和查询模块303,其中,请求获取模块301用于获取请求对象的数据访问请求,根据数据访问请求获取请求对象的请求信息;查询参数获取模块302用于根据权限信息确定访问范围路径;查询模块303用于根据访问范围路径更新查询语句(sql)并执行该查询语句,获取数据访问请求对应的数据。
在一可选实施例中,请求获取模块301进一步用于根据数据访问请求获取请求对象的数据访问权限和请求路径;若所获取的所述数据访问权限限定的数据资源与请求路径的目标数据匹配,则获取与所述数据访问权限关联的数据访问范围权限。
在一可选实施例中,还包括第一组织路径存储模块304,第一组织路径存储模块304用于在用户数据模型中存储用户对象的第一组织路径,该第一组织路径为用户数据模型中根用户对象到对应用户对象的绝对路径。
查询模块303进一步用于将用户数据模型与请求路径指向的目标数据按照相同的用户对象进行对应,形成临时数据表,具体可通过用户标识字段来确认为相同的用户对象;在临时数据表中通过访问范围路径与第一组织路径进行匹配,获取符合预设匹配规则的组织路径所对应的数据,该数据为数据访问请求对应的数据。
在一可选实施例中,还包括父组织标记存储模块305和第二组织路径获取模块306,父组织标记存储模块305用于在所述用户数据模型中存储用户对象的父组织标记,所述父组织标记指向用户对象的父用户对象。第二组织路径获取模块306用于根据父组织标记获取第二组织路径,第二组织路径为根用户对象到所述父组织标记指向的父用户对象的绝对路径。
查询参数获取模块302进一步用于当数据访问范围权限限定的目标用户对象为根用户对象,访问范围路径取空;当数据访问范围权限限定的目标用户对象为所述请求对象的父用户对象,访问范围路径取第二组织路径;当数据访问范围权限限定的目标用户对象为请求对象,访问范围路径取第一组织路径。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关细节之处请参见方法实施例的说明。
基于同一发明构思,本发明还提供一种电子设备,所述电子设备可以是服务器、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等终端设备。该电子设备包括一个或多个处理器和存储器,其中处理器用于执行程序实现方法实施例的数据访问方法;存储器用于存储可由所述处理器执行的计算机程序。该电子设备还可包括显示屏,显示屏用于显示处理器得到的数据。
基于同一发明构思,本发明还提供一种计算机可读存储介质,与前述数据访问方法的实施例相对应,所述计算机可读存储介质其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所记载的数据访问方法的步骤。
本申请可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,则本发明也意图包含这些改动和变形。
Claims (10)
1.一种数据访问方法,应用于用户数据模型为多层级树形结构的系统,其特征在于,包括步骤:
在所述用户数据模型中存储用户对象的第一组织路径,所述第一组织路径为所述用户数据模型中根用户对象到对应用户对象的绝对路径;
获取请求对象的数据访问请求,根据所述数据访问请求获取请求路径和所述请求对象的数据访问范围权限,所述请求路径指向与所述用户对象关联的目标数据;所述数据访问范围权限指示所述请求对象可访问的数据范围为目标用户对象或目标用户对象及其后代用户对象的数据;
根据所述数据访问范围权限确定访问范围路径,所述访问范围路径为所述用户数据模型中根用户对象到所述目标用户对象的绝对路径;
将所述用户数据模型中的数据与所述目标数据按照相同的所述用户对象进行对应,形成临时数据表;在所述临时数据表中将所述访问范围路径与所述第一组织路径进行匹配,确定符合预设匹配规则的第一组织路径对应的所述目标数据为所述数据访问请求对应的数据。
2.根据权利要求1所述的方法,其特征在于:所述预设匹配规则为所述第一组织路径中包含所述访问范围路径的预设数据量字符,或为所述第一组织路径与所述访问范围路径的字符完全匹配。
3.根据权利要求1所述的方法,其特征在于,根据所述数据访问请求获取所述请求对象的数据访问范围权限,包括步骤:根据所述数据访问请求获取所述请求对象的数据访问权限,所述数据访问权限与所述数据访问范围权限关联;若所获取的所述数据访问权限限定的数据资源与所述目标数据匹配,则获取与所述数据访问权限关联的数据访问范围权限。
4.根据权利要求1-3中任一项所述的方法,其特征在于:所述目标用户对象为根用户对象或所述请求对象的父用户对象或所述请求对象。
5.根据权利要求1-3中任一项所述的方法,其特征在于,还包括步骤:在所述用户数据模型中存储用户对象的父组织标记,所述父组织标记指向用户对象的父用户对象;根据所述父组织标记获取第二组织路径,所述第二组织路径为所述根用户对象到所述父组织标记指向的父用户对象的绝对路径;
根据所述数据访问范围权限确定访问范围路径,包括步骤:当所述目标用户对象为所述根用户对象,所述访问范围路径取空;当所述目标用户对象为所述请求对象的父用户对象,所述访问范围路径取所述请求对象对应的第二组织路径;当所述目标用户对象为所述请求对象,所述访问范围路径取所述请求对象的第一组织路径。
6.一种数据访问装置,应用于用户数据模型为多层级树形结构的系统,其特征在于,包括:
第一组织路径存储模块,用于在所述用户数据模型中存储用户对象的第一组织路径,所述第一组织路径为所述用户数据模型中根用户对象到对应用户对象的绝对路径;
请求获取模块,用于获取请求对象的数据访问请求,根据所述数据访问请求获取请求路径和所述请求对象的数据访问范围权限,所述请求路径指向与所述用户对象关联的目标数据;所述数据访问范围权限指示所述请求对象可访问的数据范围为目标用户对象或目标用户对象及其后代用户对象的数据;
查询参数获取模块,用于根据所述数据访问范围权限确定访问范围路径,所述访问范围路径为所述用户数据模型中根用户对象到所述目标用户对象的绝对路径;
查询模块,用于将所述用户数据模型中的数据与所述目标数据按照相同的所述用户对象进行对应,形成临时数据表;在所述临时数据表中将所述访问范围路径与所述第一组织路径进行匹配,确定符合预设匹配规则的第一组织路径对应的所述目标数据为所述数据访问请求对应的数据。
7.根据权利要求6所述的装置,其特征在于:所述预设匹配规则为所述第一组织路径中包含所述访问范围路径的预设数据量字符,或为所述第一组织路径与所述访问范围路径的字符完全匹配。
8.根据权利要求6所述的装置,其特征在于:查询参数获取模块中,根据所述数据访问请求获取所述请求对象的数据访问范围权限,包括步骤:根据所述数据访问请求获取所述请求对象的数据访问权限,所述数据访问权限与所述数据访问范围权限关联;若所获取的所述数据访问权限限定的数据资源与所述目标数据匹配,则获取与所述数据访问权限关联的数据访问范围权限。
9.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储由所述处理器执行的计算机程序;
其中,所述处理器执行所述计算机程序时实现权利要求1-5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被执行时实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210776249.6A CN114840868B (zh) | 2022-07-04 | 2022-07-04 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210776249.6A CN114840868B (zh) | 2022-07-04 | 2022-07-04 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840868A CN114840868A (zh) | 2022-08-02 |
CN114840868B true CN114840868B (zh) | 2022-10-14 |
Family
ID=82574597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210776249.6A Active CN114840868B (zh) | 2022-07-04 | 2022-07-04 | 数据访问方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840868B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102299812A (zh) * | 2010-06-22 | 2011-12-28 | 华为技术有限公司 | 一种访问控制方法及网络设备 |
CN102521416A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 数据关联查询方法和数据关联查询装置 |
CN109739873A (zh) * | 2018-12-27 | 2019-05-10 | 广州市玄武无线科技股份有限公司 | 一种业务数据查询方法、装置、设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747610B2 (en) * | 2006-11-10 | 2010-06-29 | Sybase, Inc. | Database system and methodology for processing path based queries |
CN107015996A (zh) * | 2016-01-28 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种资源访问方法、装置及系统 |
-
2022
- 2022-07-04 CN CN202210776249.6A patent/CN114840868B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102299812A (zh) * | 2010-06-22 | 2011-12-28 | 华为技术有限公司 | 一种访问控制方法及网络设备 |
CN102521416A (zh) * | 2011-12-28 | 2012-06-27 | 用友软件股份有限公司 | 数据关联查询方法和数据关联查询装置 |
CN109739873A (zh) * | 2018-12-27 | 2019-05-10 | 广州市玄武无线科技股份有限公司 | 一种业务数据查询方法、装置、设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
基于岗位的访问控制模型的研究;鲁金松 等;《信息网络安全》;20161231;第26-29页 * |
服务网格中基于属性自动合并的访问控制模型;喻玲 等;《小型微型计算机系统》;20100815;第31卷(第08期);第1619-1624页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114840868A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2021212135B2 (en) | Building and managing data-processing attributes for modelled data sources | |
US9544400B2 (en) | Manipulating binary large objects | |
US9910895B2 (en) | Push subscriptions | |
US9009728B2 (en) | Method and apparatus for widget and widget-container distribution control based on content rules | |
US9805209B2 (en) | Systems and methodologies for managing document access permissions | |
US9589016B2 (en) | Materialized query tables with shared data | |
US8601549B2 (en) | Controlling access to a resource using an attribute based access control list | |
WO2012071656A1 (en) | Method and system of hierarchical metadata management and application | |
US20150363435A1 (en) | Declarative Virtual Data Model Management | |
US11347808B1 (en) | Dynamically-adaptive bloom-filter | |
CN107111720B (zh) | 用于控制对于对象的访问的方法、介质、设备和装置 | |
US9665732B2 (en) | Secure Download from internet marketplace | |
US20190362016A1 (en) | Frequent pattern analysis for distributed systems | |
CN105528218A (zh) | 数据图表级联方法及数据图表级联系统 | |
US10242102B2 (en) | Network crawling prioritization | |
CN114840868B (zh) | 数据访问方法、装置、电子设备及计算机可读存储介质 | |
US9135251B2 (en) | Generating simulated containment reports of dynamically assembled components in a content management system | |
TWI677822B (zh) | 網頁介面管理系統、方法及可讀存儲介質 | |
US10114864B1 (en) | List element query support and processing | |
CN114547055A (zh) | 一种数据处理方法及装置 | |
US10362146B1 (en) | Method and system for enforcing governance across multiple content repositories using a content broker | |
US11392662B1 (en) | Attribute inheritance of related objects for a digital object architecture | |
CN110377857B (zh) | 一种显示信息处理方法、装置、电子设备及存储介质 | |
CN116305288B (zh) | 一种隔离数据库资源的方法、装置、设备和存储介质 | |
US11366810B2 (en) | Index contention under high concurrency in a database system |
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 |