CN115659406A - 一种数据访问方法 - Google Patents
一种数据访问方法 Download PDFInfo
- Publication number
- CN115659406A CN115659406A CN202211576745.3A CN202211576745A CN115659406A CN 115659406 A CN115659406 A CN 115659406A CN 202211576745 A CN202211576745 A CN 202211576745A CN 115659406 A CN115659406 A CN 115659406A
- Authority
- CN
- China
- Prior art keywords
- data access
- authority
- access request
- user
- user data
- 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.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据访问方法,该方法接收用户数据访问请求;响应所述用户数据访问请求,获取对应所述用户数据访问请求的用户权限信息;基于所述用户权限信息修改所述用户数据访问请求对应的操作语句,得到与所述用户数据访问请求的用户权限匹配的所述操作语句;利用所述用户权限匹配的所述操作语句操作数据库。上述方案,通过修改所述用户数据访问请求对应的操作语句来定义不同用户的权限,实现数据隔离,这不仅降低了数据库的成本,还可以存入更多用户和用户的数据。
Description
技术领域
本申请的所公开实施例涉及数据处理技术领域,且更具体而言,涉及一种数据访问方法。
背景技术
当不同的用户共享相同的系统或程序组件时,不同的用户在数据库中存有不同的数据。因此,需将用户和数据一一对应,用户只能访问自己的数据。常用的方式为:独立数据库,每个用户建立自己的数据库,这种数据隔离级别最高,但这增加了数据库的数量,购置和维护数据库的成本也随之增加;或共享数据库、隔离数据架构,用户共同使用一个数据库,但每个用户有自己的Schema(数据库的组织和结构),虽减少了数据库的数量,但数据库存在限制,可存入的Schema个数有限,造成可存入的用户数量有限。
发明内容
根据本申请的实施例,本申请提供一种数据访问方法来解决上述问题。
本申请第一方面提供了一种数据访问方法,所述数据访问方法包括:接收用户数据访问请求;响应所述用户数据访问请求,获取对应所述用户数据访问请求的用户权限信息;基于所述用户权限信息修改所述用户数据访问请求对应的操作语句,得到与所述用户数据访问请求的用户权限匹配的操作语句;利用所述用户权限匹配的操作语句操作所述数据库。
在一些实施例中,所述获取对应所述用户数据访问请求的用户权限信息包括:读取预设的DAO层的配置文件,获取所述DAO层的对应所述用户数据访问请求的命名空间;确定所述DAO层的对应所述用户数据访问请求的所述命名空间与所述DAO层的所述配置文件中的所述命名空间是否一致;响应于一致,获取所述命名空间内的权限注解对象和所述权限注解对象的值,作为所述用户权限信息。
在一些实施例中,所述获取对应所述用户数据访问请求的所述用户权限信息包括:读取预设的注解的权限接口类,获取对应所述用户数据访问请求的接口类;确定对应所述用户数据访问请求的所述接口类与所述注解的所述权限接口类是否一致;响应于一致,确定对应所述用户数据访问请求的所述权限接口类的对象与所述注解的所述权限接口类的权限注解对象是否一致;响应于一致,获取所述权限接口类的所述权限注解对象和所述权限注解对象的值,作为所述用户权限信息。
在一些实施例中,所述获取所述命名空间内的权限注解对象和所述权限注解对象的值之前包括:确定所述命名空间内的权限注解对象和所述权限注解对象的值是否为空,响应于不为空,则执行所述获取所述命名空间内的权限注解对象和所述权限注解对象的值的步骤,响应于为空,则执行所述用户数据访问请求对应的操作语句;或响应于不一致,则执行所述用户数据访问请求对应的操作语句。
可选的,在一些实施例中,获取所述权限接口类的所述权限注解对象和所述权限注解对象的值之前包括:确定所述权限接口类的所述权限注解对象的值是否为空,响应于不为空,则执行所述获取所述权限接口类的所述权限注解对象和所述权限注解对象的值的步骤,响应于为空,则执行所述用户数据访问请求对应的所述操作语句;或响应于不一致,则执行所述用户数据访问请求对应的所述操作语句。
在一些实施例中,所述基于所述用户权限信息修改所述用户数据访问请求对应的操作语句包括:在所述用户数据访问请求对应的操作语句中加入对应所述用户权限信息的附加语句。
其中,所述在所述用户数据访问请求对应的操作语句中加入对应所述用户权限信息的附加语句包括:在所述用户数据访问请求对应的SQL操作语句中添加选择查询语句,并将是否为所述权限注解对象的值作为所述选择查询语句的查询条件。
在一些实施例中,所述DAO层的所述配置文件的生成方法包括:预设需要鉴定的所述权限注解对象;创建所述配置文件,在所述配置文件中输入所述权限注解对象所属的所述命名空间,全局定义并加载所述配置文件。其中,所述权限注解对象的数量为多个。
本申请第二方面提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面中的数据访问方法。
本申请第三方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面中的数据访问方法。
上述方案,在接收和响应到用户数据访问请求后,通过获取用户权限信息,可基于用户权限信息修改用户数据访问请求对应的操作语句,得到与用户数据访问请求的用户权限匹配的操作语句。本申请有条件使用户共同使用一个数据库和一个Schema,通过定义不同用户的权限实现数据隔离,这不仅降低了数据库的成本,还可以存入更多用户和用户的数据。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请的数据访问方法一实施例的流程示意图;
图2是本申请一实施例的修改用户数据访问请求对应的操作语句的流程示意图;
图3是本申请另一实施例的修改用户数据访问请求对应的操作语句的流程示意图;
图4是本申请的电子设备40一实施例的框架示意图;
图5是本申请的非易失性计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
若本申请技术方案涉及个人信息,应用本申请技术方案的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本申请技术方案涉及敏感个人信息,应用本申请技术方案的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。例如,在摄像头等个人信息采集装置处,设置明确显著的标识告知已进入个人信息采集范围,将会对个人信息进行采集,若个人自愿进入采集范围即视为同意对其个人信息进行采集;或者在个人信息处理的装置上,利用明显的标识/信息告知个人信息处理规则的情况下,通过弹窗信息或者请个人自行上传其个人信息等方式获得个人授权;其中,个人信息处理规则可包括个人信息处理者、个人信息处理目的、处理方式以及处理个人信息种类等信息。
请参阅图1 ,图1是本申请的数据访问方法一实施例的流程示意图。数据访问方法的执行主体可以是数据访问装置,例如,数据访问方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备或可穿戴设备等。在一些可能的实现方式中,该数据访问方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
具体而言,如图1所示,该方法可包括如下步骤:
步骤S11:接收用户数据访问请求。
用户可以是指对应用程序以及应用程序的相关信息进行管理的人员,例如:应用程序的编写人员或维护人员;也可以是需要对应用程序以及应用程序的相关信息进行查询的人员,在此不作赘述。
因此,用户发出的数据访问请求可以是请求在数据库添加、删除、修改、查找数据中的一种操作或者是多种操作的组合。例如:用户在页面中输入某个数据,且点击“确认”、“查询”、“删除”、“增加”或“修改”等按钮后,将会对数据库发送数据访问请求,请求对数据库进行相关操作。此时,计算机程序、计算机进程或Web后端应用程序等将会接收到用户数据访问请求。
步骤S12:响应用户数据访问请求,获取对应用户数据访问请求的用户权限信息。
计算机程序、计算机进程或Web后端应用程序等将会接收到用户数据访问请求后,会响应此数据访问请求,且获取对应的用户权限信息。
在此用户权限信息中,预先定义了权限注解对象,权限注解对象可以为一个或多个需要鉴定权限的字段,通过鉴定权限的字段判断用户发出的数据访问请求是否合理,或是否有权限访问数据库。
在一些具体实施例中,可以将数据库的用户表格中的“userId”字段作为是否有权限访问数据库的判断条件,再将权限注解对象所属的命名空间输入配置文件中。可选的,用户权限信息由不同权限注解对象所属的命名空间组成。
在另一些实施例中,可以将数据库的用户表格中的“userId”字段作为是否有权限访问数据库的判断条件,再注释使用该权限注解对象的方法所属的接口类。可选的,用户权限信息由不同权限注解对象所属的权限注解接口类组成。
步骤S13:基于用户权限信息修改用户数据访问请求对应的操作语句,得到与用户数据访问请求的用户权限匹配的操作语句。
操作语句可以为SQL语句,SQL语句是对数据库进行操作的一种语言,可以对数据库内的数据进行添加、删除、修改、查找中的一种操作或者是多种操作的组合。
在一些具体实施例中,在获取对应用户数据访问请求的用户权限信息后,与需要调用的用户权限信息比对,判断配置文件中定义的用户权限是否包含执行用户数据访问请求需要的用户权限,如果不包含执行用户数据访问请求需要的用户权限,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含执行用户数据访问请求需要的用户权限,但权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含执行用户数据访问请求需要的用户权限,且权限注解对象的值不为空,则在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句,即为将的权限注解对象、权限注解对象的值作为用户权限判断条件,并添加在原操作语句的前面,且当用户权限判断通过后,才可执行操作语句。
在另一些具体的实施例中,在获取对应用户数据访问请求的用户权限信息后,与需要调用的用户权限信息比对,判断对应用户数据访问请求的接口类是否包含注解的权限接口类,如果不包含注解的权限接口类,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含注解的权限接口类,判断对应用户数据访问请求的权限接口类的对象是否包含注解的权限接口类的权限注解对象。如果不包含注解的权限接口类的权限注解对象,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含注解的权限接口类的权限注解对象,但权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含注解的权限接口类的权限注解对象,且权限注解对象的值不为空,则在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句,即为将的权限注解对象、权限注解对象的值作为用户权限判断条件,并添加在原操作语句的前面,且当用户权限判断通过后,才可执行操作语句。
可选的,既可以将基于用户权限信息修改过的用户数据访问请求对应的操作语句保存在应用程序的代码中,当再次接收到同样的用户数据访问请求时,执行先前保存的此用户数据访问请求的用户权限匹配的操作语句;也可以不将基于用户权限信息修改过的用户数据访问请求对应的操作语句保存在应用程序的代码中,当再次接收到同样的用户数据访问请求时,则重新基于用户权限信息修改用户数据访问请求对应的操作语句,得到与用户数据访问请求的用户权限匹配的操作语句。
步骤S14:利用用户权限匹配的操作语句操作数据库。
得到与用户数据访问请求的用户权限匹配的操作语句后,继续执行用户数据访问请求对应的操作语句,对数据库的数据进行相关操作。
本实施例中,在接收和响应到用户数据访问请求后,通过获取用户权限信息,可基于用户权限信息修改用户数据访问请求对应的操作语句,得到与用户数据访问请求的用户权限匹配的操作语句。本申请有条件使用户共同使用一个数据库和一个Schema的情况下,通过定义不同用户的权限实现数据隔离,这不仅降低了数据库的成本,还可以存入更多用户和用户的数据。
如上述,获取对应用户数据访问请求的用户权限信息。在一些实施例中,获取对应用户数据访问请求的用户权限信息包括:读取预设的DAO层的配置文件,获取DAO层的对应用户数据访问请求的命名空间;确定DAO层的对应用户数据访问请求的命名空间与DAO层的配置文件中的命名空间是否一致;响应于一致,获取命名空间内的权限注解对象和权限注解对象的值,作为用户权限信息。
读取配置文件中提前配置的需要进行拦截的DAO层的命名空间,获取执行用户数据访问请求需要调用的DAO层的命名空间,判断配置文件中的命名空间是否包含执行用户数据访问请求需要调用的DAO层的命名空间,如果部分或全部包含命名空间,且权限注解对象和权限注解对象的值不为空,则获取包含在配置文件中的命名空间的权限注解对象、权限注解对象的值,且将此权限注解对象、权限注解对象的值作为用户权限判断条件。
可选的,获取对应用户数据访问请求的用户权限信息。在一些实施例中,获取对应用户数据访问请求的用户权限信息包括:读取预设的注解的权限接口类,获取对应用户数据访问请求的接口类;确定对应用户数据访问请求的接口类与注解的权限接口类是否一致;响应于一致,确定对应用户数据访问请求的权限接口类的对象与注解的权限接口类的权限注解对象是否一致;响应于一致,获取权限接口类的权限注解对象和权限注解对象的值,作为用户权限信息。
注解的权限接口类即为给使用权限注解对象的方法所属的接口类打标签,例如:定义注解的权限接口类NeedPremissin(作用目标为ElementType.Type),用于标记需要添加权限的接口类。注解的权限接口类的权限注解对象即为给权限注解对象打标签,例如:定义注解的权限注解对象 PermissionColumns(作用目标为ElementType.Method),值为需要鉴定权限的字段,若字段多个采用‘,’分割,如(tenantId,departmentId)。
读取预先注解的权限接口类,当执行用户数据访问请求时,获取调用的接口类,判断调用的接口类是否部分包含或全部包含在注解的权限接口类中,例如:通过MappedStatement,获取当前类注解。若调用的接口类部分包含或全部包含在注解的权限接口类中,且对应用户数据访问请求的权限接口类的对象部分包含或全部包含在注解的权限接口类的权限注解对象中,例如:通过MappedStatement,获取当前方法是否包含PermissionColumns注解,且权限注解对象的值不为空,则获取包含注解的权限接口类的权限注解对象、权限注解对象的值,将此权限注解对象、权限注解对象的值作为用户权限判断条件。
如上述,基于用户权限信息修改用户数据访问请求对应的操作语句。在一些实施例中,基于用户权限信息修改用户数据访问请求对应的操作语句包括:在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句。
若包含在配置文件中的命名空间的权限注解对象的值不为空,则在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句,即为将的权限注解对象、权限注解对象的值作为用户权限判断条件,并添加在原操作语句的前面,且当用户权限判断通过后,才可执行操作语句。
如上述,在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句。在一些实施例中,在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句包括:在用户数据访问请求对应的SQL操作语句中添加选择查询语句,并将是否为权限注解对象的值作为选择查询语句的查询条件。
在用户数据访问请求对应的SQL操作语句中添加选择查询语句即为原SQL操作语句外部添加选择查询语句,并将是否为此权限注解对象的值作为选择查询语句的查询条件。例如:将原SQL操作语句改为selelc * from (原SQL操作语句) where 权限注解对象=‘权限注解对象的值’,若权限注解对象为两个或两个以上个,两个权限注解对象则改为selelc * from (原SQL操作语句) where 权限注解对象1=‘权限注解对象1的值’ and 权限注解对象2=‘权限注解对象2的值’,多个权限注解对象的修改方式依次类推,在此不作赘述。
如上述,读取预设的DAO层的配置文件。在一些实施例中,DAO层的配置文件的生成方法包括:预设需要鉴定的权限注解对象;创建配置文件,在配置文件中输入权限注解对象所属的命名空间,全局定义并加载配置文件。其中,权限注解对象的数量为多个。
预先定义需要鉴定的权限注解对象,若有多个对象,采用‘,’分割,例如:(tenantId,departmentId)。创建鉴定的权限的配置文件,并在此配置文件中输入权限注解对象所属的命名空间,例如:创建一个permission.properties的文件输入需要鉴定的权限注解对象所属的命名空间。全局定义并加载配置文件,因此,当接收到任何用户数据访问请求时,皆获取到DAO层预设的配置文件。例如:定义全局配置PermissionConfig类并加载该配置文件。再通过自定义的工具类获取命名空间中的需要鉴定的权限注解对象。例如:可以根据StatementHandler 获取CustomPermission的权限注解对象。
可选的,基于用户权限信息修改用户数据访问请求对应的操作语句。在一些实施例中,基于用户权限信息修改用户数据访问请求对应的操作语句之后包括:通过在界面上分多页来展示与用户数据访问请求的用户权限匹配的操作语句。
在实际的实施例中,可能修改了用户数据访问请求对应的多条操作语句,修改后的数据数量众多,可以将数据分成若干页,每页展示若干条修改用户数据访问请求对应的操作语句的数据,以分页的方式展示数据。但此修改用户数据访问请求对应的操作语句的数据仅展示给应用程序以及应用程序的相关信息进行管理的人员,例如:应用程序的编写人员或维护人员。
在此实施例中,通过在界面上分多页来展示与用户数据访问请求的用户权限匹配的操作语句包括:预设每分页展示的数据数量;将所有与用户数据访问请求的用户权限匹配的操作语句分配到数据数量的分页中。
因此,先预设每分页展示的数据数量,在获取所有修改用户数据访问请求对应的操作语句的数据数量,并根据预设的每分页展示的数据数量和所有修改用户数据访问请求对应的操作语句的数据数量计算出分页查询的总页数。
从分页查询的首页开始将修改用户数据访问请求对应的操作语句的数据依次存入,当本分页存入的修改用户数据访问请求对应的操作语句的数据超过每分页展示的数据数量后,则将未存入的修改用户数据访问请求对应的操作语句的数据存入下一分页,直至所有修改用户数据访问请求对应的操作语句的数据皆存入分页中。
如上述,获取命名空间内的权限注解对象和权限注解对象的值。在一些实施例中,获取命名空间内的权限注解对象和权限注解对象的值之前包括:确定命名空间内的权限注解对象和权限注解对象的值是否为空,响应于不为空,则执行获取命名空间内的权限注解对象和权限注解对象的值的步骤,响应于为空,则执行用户数据访问请求对应的操作语句;或响应于不一致,则执行用户数据访问请求对应的操作语句。
因此,若配置文件中的命名空间不包含在执行用户数据访问请求需要调用的DAO层的命名空间中,则执行用户数据访问请求对应的操作语句。或配置文件中的命名空间包含在执行用户数据访问请求需要调用的DAO层的命名空间中,但命名空间内的权限注解对象和权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句。或配置文件中的命名空间包含在执行用户数据访问请求需要调用的DAO层的命名空间中,但命名空间内的权限注解对象不为空、权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句。
下面为了便于理解本申请,结合上述内容对本申请一实施例的修改用户数据访问请求对应的操作语句的流程示意图进行详细描述。请参阅图2,图2是本申请一实施例的修改用户数据访问请求对应的操作语句的流程示意图。
接收并响应用户数据访问请求后,读取配置文件中提前配置的需要进行拦截的DAO层的命名空间,获取执行用户数据访问请求需要调用的DAO层的命名空间,判断配置文件中的命名空间是否包含执行用户数据访问请求需要调用的DAO层的命名空间,如果不包含命名空间,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含命名空间,但命名空间内的权限注解对象和权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含命名空间,但命名空间内的权限注解对象不为空、权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含命名空间,命名空间内的权限注解对象和权限注解对象的值不为空,则在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句,即为将的权限注解对象、权限注解对象的值作为用户权限判断条件,并添加在原操作语句的前面,且当用户权限判断通过后,才可执行操作语句。
可选的,获取权限接口类的权限注解对象和权限注解对象的值。在一些实施例中,获取权限接口类的权限注解对象和权限注解对象的值之前包括:确定权限接口类的权限注解对象的值是否为空,响应于不为空,则执行获取权限接口类的权限注解对象和权限注解对象的值的步骤,响应于为空,则执行用户数据访问请求对应的操作语句;或响应于不一致,则执行用户数据访问请求对应的操作语句。
因此,若执行用户数据访问请求时,未调用注解的权限接口类,则继续执行用户数据访问请求对应的操作语句。或对应用户数据访问请求的权限接口类的对象不包含在注解的权限接口类的权限注解对象中,则继续执行用户数据访问请求对应的操作语句。或对应用户数据访问请求的权限接口类的对象包含在注解的权限接口类的权限注解对象中,但注解的权限接口类的权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句。
下面为了便于理解本申请,结合上述内容对本申请一实施例的修改用户数据访问请求对应的操作语句的流程示意图进行详细描述。请参阅图3,图3是本申请另一实施例的修改用户数据访问请求对应的操作语句的流程示意图。
接收并响应用户数据访问请求后,读取预设的需要进行拦截的注解的权限接口类,获取执行用户数据访问请求需要调用的接口类,判断对应用户数据访问请求的接口类是否包含注解的权限接口类,如果不包含注解的权限接口类,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含注解的权限接口类,判断对应用户数据访问请求的权限接口类的对象是否包含注解的权限接口类的权限注解对象。如果不包含注解的权限接口类的权限注解对象,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含注解的权限接口类的权限注解对象,但权限注解对象的值为空,则继续执行用户数据访问请求对应的操作语句;如果部分或全部包含注解的权限接口类的权限注解对象,且权限注解对象的值不为空,则在用户数据访问请求对应的操作语句中加入对应用户权限信息的附加语句,即为将的权限注解对象、权限注解对象的值作为用户权限判断条件,并添加在原操作语句的前面,且当用户权限判断通过后,才可执行操作语句。
请参阅图4,图4是本申请电子设备40一实施例的框架示意图。电子设备40包括相互耦接的存储器41和处理器42,处理器42用于执行存储器41中存储的程序指令,以实现上述任一数据访问方法实施例的步骤。在一个具体的实施场景中,电子设备40可以包括但不限于:微型计算机、服务器,此外,电子设备40还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器42用于控制其自身以及存储器41以实现上述任一数据访问方法实施例的步骤。处理器42还可以称为CPU(Central Processing Unit,中央处理单元)。处理器42可能是一种集成电路芯片,具有信号的处理能力。处理器42还可以是通用处理器、数字信号处理器(Digital Signal Processor, DSP)、专用集成电路(Application SpecificIntegrated Circuit, ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器42可以由集成电路芯片共同实现。
请参阅图5,图5是本申请的非易失性计算机可读存储介质一实施例的框架示意图。计算机可读存储介质50存储有能够被处理器运行的程序指令501,程序指令501用于实现上述任一数据访问方法实施例的步骤。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员易知,可在保持本申请的教示内容的同时对装置及方法作出诸多修改及变动。因此,以上公开内容应被视为仅受随附权利要求书的范围的限制。
Claims (10)
1.一种数据访问方法,其特征在于,包括:
接收用户数据访问请求;
响应所述用户数据访问请求,获取对应所述用户数据访问请求的用户权限信息;
基于所述用户权限信息修改所述用户数据访问请求对应的操作语句,得到与所述用户数据访问请求的用户权限匹配的所述操作语句;
利用所述用户权限匹配的所述操作语句操作数据库。
2.根据权利要求1所述的数据访问方法,其特征在于,
所述获取对应所述用户数据访问请求的所述用户权限信息包括:
读取预设的DAO层的配置文件,获取所述DAO层的对应所述用户数据访问请求的命名空间;
确定所述DAO层的对应所述用户数据访问请求的所述命名空间与所述DAO层的所述配置文件中的所述命名空间是否一致;
响应于一致,获取所述命名空间内的权限注解对象和所述权限注解对象的值,作为所述用户权限信息。
3.根据权利要求1所述的数据访问方法,其特征在于,
所述获取对应所述用户数据访问请求的所述用户权限信息包括:
读取预设的注解的权限接口类,获取对应所述用户数据访问请求的接口类;
确定对应所述用户数据访问请求的所述接口类与所述注解的所述权限接口类是否一致;
响应于一致,确定对应所述用户数据访问请求的所述权限接口类的对象与所述注解的所述权限接口类的权限注解对象是否一致;
响应于一致,获取所述权限接口类的所述权限注解对象和所述权限注解对象的值,作为所述用户权限信息。
4.根据权利要求2或3所述的数据访问方法,其特征在于,
所述基于所述用户权限信息修改所述用户数据访问请求对应的所述操作语句包括:
在所述用户数据访问请求对应的所述操作语句中加入对应所述用户权限信息的附加语句。
5.根据权利要求4所述的数据访问方法,其特征在于,
所述在所述用户数据访问请求对应的所述操作语句中加入对应所述用户权限信息的所述附加语句包括:
在所述用户数据访问请求对应的SQL操作语句中添加选择查询语句,并将是否为所述权限注解对象的值作为所述选择查询语句的查询条件。
6.根据权利要求2所述的数据访问方法,其特征在于,
所述DAO层的所述配置文件的生成方法包括:
预设需要鉴定的所述权限注解对象;
创建所述配置文件,在所述配置文件中输入所述权限注解对象所属的所述命名空间,全局定义并加载所述配置文件;
其中,所述权限注解对象的数量为多个。
7.根据权利要求2所述的数据访问方法,其特征在于,
所述获取所述命名空间内的所述权限注解对象和所述权限注解对象的值之前包括:
确定所述命名空间内的所述权限注解对象和所述权限注解对象的值是否为空,响应于不为空,则执行所述获取所述命名空间内的所述权限注解对象和所述权限注解对象的值的步骤,响应于为空,则执行所述用户数据访问请求对应的所述操作语句;或
响应于不一致,则执行所述用户数据访问请求对应的所述操作语句。
8.根据权利要求3所述的数据访问方法,其特征在于,
获取所述权限接口类的所述权限注解对象和所述权限注解对象的值之前包括:
确定所述权限接口类的所述权限注解对象的值是否为空,响应于不为空,则执行所述获取所述权限接口类的所述权限注解对象和所述权限注解对象的值的步骤,响应于为空,则执行所述用户数据访问请求对应的所述操作语句;或
响应于不一致,则执行所述用户数据访问请求对应的所述操作语句。
9.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至8任一项所述的数据访问方法。
10.一种非易失性计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至8任一项所述的数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211576745.3A CN115659406B (zh) | 2022-12-09 | 2022-12-09 | 一种数据访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211576745.3A CN115659406B (zh) | 2022-12-09 | 2022-12-09 | 一种数据访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115659406A true CN115659406A (zh) | 2023-01-31 |
CN115659406B CN115659406B (zh) | 2023-04-28 |
Family
ID=85019262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211576745.3A Active CN115659406B (zh) | 2022-12-09 | 2022-12-09 | 一种数据访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115659406B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3931504A (en) * | 1972-02-07 | 1976-01-06 | Basic Computing Arts, Inc. | Electronic data processing security system and method |
CN108416199A (zh) * | 2018-03-07 | 2018-08-17 | 北京恒华伟业科技股份有限公司 | 一种应用的用户权限控制方法、装置及服务器 |
CN108874863A (zh) * | 2018-04-19 | 2018-11-23 | 华为技术有限公司 | 一种数据访问的控制方法及数据库访问装置 |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN111400681A (zh) * | 2020-04-07 | 2020-07-10 | 杭州指令集智能科技有限公司 | 数据权限处理方法、装置及设备 |
CN114528593A (zh) * | 2022-03-15 | 2022-05-24 | 平安国际智慧城市科技股份有限公司 | 数据权限控制方法、装置、设备及存储介质 |
CN114676418A (zh) * | 2022-05-27 | 2022-06-28 | 太平金融科技服务(上海)有限公司深圳分公司 | 操作请求处理方法、装置、设备、存储介质和程序产品 |
-
2022
- 2022-12-09 CN CN202211576745.3A patent/CN115659406B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3931504A (en) * | 1972-02-07 | 1976-01-06 | Basic Computing Arts, Inc. | Electronic data processing security system and method |
CN108416199A (zh) * | 2018-03-07 | 2018-08-17 | 北京恒华伟业科技股份有限公司 | 一种应用的用户权限控制方法、装置及服务器 |
CN108874863A (zh) * | 2018-04-19 | 2018-11-23 | 华为技术有限公司 | 一种数据访问的控制方法及数据库访问装置 |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN111400681A (zh) * | 2020-04-07 | 2020-07-10 | 杭州指令集智能科技有限公司 | 数据权限处理方法、装置及设备 |
CN114528593A (zh) * | 2022-03-15 | 2022-05-24 | 平安国际智慧城市科技股份有限公司 | 数据权限控制方法、装置、设备及存储介质 |
CN114676418A (zh) * | 2022-05-27 | 2022-06-28 | 太平金融科技服务(上海)有限公司深圳分公司 | 操作请求处理方法、装置、设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN115659406B (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020186786A1 (zh) | 文件处理方法、装置、计算机设备和存储介质 | |
CN111797073B (zh) | 数据库管理方法、电子设备与计算机可读存储介质 | |
CN107992506B (zh) | 信息处理方法及装置 | |
CN105431844A (zh) | 用于搜索系统的第三方搜索应用 | |
CN111274263B (zh) | 可视化数据库变更语句生成方法、装置及存储介质 | |
CN109740129B (zh) | 基于区块链的报表生成方法、装置、设备及可读存储介质 | |
CN110427775A (zh) | 数据查询权限控制方法及装置 | |
CN105488125A (zh) | 页面访问方法和装置 | |
CN110941779A (zh) | 加载页面的方法、装置、存储介质及电子设备 | |
WO2023040530A1 (zh) | 网页内容溯源方法、知识图谱构建方法以及相关设备 | |
EP2343661A1 (en) | A multimedia search method and engine, a meta-search server, and client | |
CN112733510A (zh) | 一种财务凭证生成方法、装置、设备及计算机可读存储介质 | |
CN111858581B (zh) | 一种分页查询的方法、装置、存储介质和电子设备 | |
CN113282591A (zh) | 权限过滤方法、装置、计算机设备及存储介质 | |
KR20220013084A (ko) | 복수의 문서 저장소들과 연동하여 클라이언트 단말로부터 수신된 문서 파일의 저장 처리를 수행하는 문서 저장 관리 서버 및 그 동작 방법 | |
CN115659406B (zh) | 一种数据访问方法 | |
CN116432232A (zh) | 数据脱敏方法、装置、计算机设备及计算机可读存储介质 | |
CN115732052A (zh) | 基于结构化临床项目的病例报告表生成方法及设备 | |
CN112188591B (zh) | 网络接入方法、装置、计算机设备和存储介质 | |
CN112433779A (zh) | 基于erp系统的应用站点预加载方法、设备和存储介质 | |
CN109086145B (zh) | 数据生成方法、装置及计算机存储介质 | |
CN112256820A (zh) | 一种文档定位方法及装置 | |
CN112416401B (zh) | 一种数据更新方法、装置及设备 | |
CN107659720A (zh) | 一种信息处理方法、电子设备和计算机存储介质 | |
CN115904380B (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 |