数据库访问权限验证方法及装置与流程

未命名 07-12 阅读:57 评论:0


1.本发明实施例涉及计算机技术领域,具体涉及一种数据库访问权限验证方法及装置。


背景技术:

2.在java中,为保证关系数据库的安全性,通常设置数据库的访问权限。直接使用jdbc驱动访问数据库,可以灵活地进行业务扩展,但是一般公司对数据库用户注册比较严格,审批流程较长。
3.因此,如何实现用户既能够使用jdbc访问数据库,从而保证业务扩展的灵活性,同时又能避免数据库关于用户权限的审批,从而实现灵活的权限控制,成为亟待解决的难题。


技术实现要素:

4.针对现有技术存在的缺陷,本发明实施例提供一种数据库访问权限验证方法及装置。
5.本发明实施例提供一种数据库访问权限验证方法,包括:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;将所述数据库访问请求透传至目标jdbc驱动;通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
6.根据本发明实施例提供的一种数据库访问权限验证方法,所述数据库访问请求是所述用户通过用户端调用connect方法发起的;所述用户信息封装在所述connect方法的properties info参数中。
7.根据本发明实施例提供的一种数据库访问权限验证方法,在所述通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求之前,所述方法还包括:通过继承动态数据管理框架的原始jdbc驱动实现所述目标jdbc驱动,并通过重载所述原始jdbc驱动的原始connect方法,得到所述connect方法。
8.根据本发明实施例提供的一种数据库访问权限验证方法,所述通过所述目标jdbc驱动解析所述数据访问请求,获取所述用户信息及所述jdbc url,包括:通过所述目标jdbc驱动解析所述connect方法的properties info参数,获取所述用户信息;通过所述目标jdbc驱动解析所述connect方法的string url参数,获取所述jdbc url。
9.根据本发明实施例提供的一种数据库访问权限验证方法,所述进行所述业务系统关于数据库访问的权限验证,包括:通过调用所述原始connect方法,进行所述业务系统关于数据库访问的权限验证。
10.根据本发明实施例提供的一种数据库访问权限验证方法,所述方法还包括:响应
于所述用户不具有访问所述jdbc url的权限,抛出异常信息。
11.本发明实施例还提供一种数据库访问权限验证装置,包括:接收模块,用于:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;透传模块,用于:将所述数据库访问请求透传至目标jdbc驱动;解析模块,用于:通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;第一验证模块,用于:根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;第二验证模块,用于:响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
12.本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库访问权限验证方法的步骤。
13.本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库访问权限验证方法的步骤。
14.本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据库访问权限验证方法的步骤。
15.本发明实施例提供的数据库访问权限验证方法及装置,通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求,将数据库访问请求透传至目标jdbc驱动,通过目标jdbc驱动解析数据库访问请求,获取用户信息及jdbc url,根据用户信息,调用业务系统验证用户是否具有访问jdbc url的权限,响应于用户具有访问jdbc url的权限,进行业务系统关于数据库访问的权限验证,验证通过后允许用户访问数据库,用户可以直接使用jdbc驱动发起数据库访问请求,并能通过业务系统鉴权,实现了业务扩展的灵活性和灵活的权限控制的统一。
附图说明
16.为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是一种数据库访问权限验证方法的原理示意图;
18.图2是另一种数据库访问权限验证方法的原理示意图;
19.图3是本发明实施例提供的数据库访问权限验证方法的流程示意图;
20.图4是本发明实施例提供的数据库访问权限验证方法的原理示意图;
21.图5是本发明实施例提供的数据库访问权限验证装置的结构示意图;
22.图6是本发明实施例提供的电子设备的结构示意图。
具体实施方式
23.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳
动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.图1是一种数据库访问权限验证方法的原理示意图。如图1所示,使用数据库层提供的安全机制,给不同的用户分配不同的库表访问权限。用户访问时,使用jdbc驱动,并提供用户名/密码,就能直接访问数据库。这种方法的优点是用户可以直接使用jdbc驱动访问数据库,可以灵活地进行业务扩展;缺点是一般公司对数据库用户注册比较严格,审批流程较长。
25.图2是另一种数据库访问权限验证方法的原理示意图。如图2所示,用户通过业务系统访问间接访问数据库。即,在用户和数据库之间隔一层业务系统,通过业务系统控制用户访问权限。图2中,业务权限和数据库权限分别是两套权限体系,业务系统通过jdbc驱动与数据库连接,数据库会验证业务系统的权限;用户通过业务系统的客户端传递查询sql,业务系统会额外验证用户的业务权限。这种方法的优点是由业务系统控制权限,用户无需直接对接公司的数据库审批流程,权限控制灵活。缺点是用户只能通过业务系统提供的客户端(例如,通过浏览器)访问数据库,对用户灵活的业务扩展不友好。
26.图3是本发明实施例提供的数据库访问权限验证方法的流程示意图。如图3所示,该方法包括:
27.步骤s1、通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url。
28.jdbc(java database connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
29.图4是本发明实施例提供的数据库访问权限验证方法的原理示意图。本发明实施例通过动态数据管理框架实现一个jdbc代理,如使用开源的calcite实现一个jdbc代理(接下来的实施例均以calcite为例)。jdbc代理包括代理jdbc驱动和目标jdbc驱动。其中,通过代理jdbc驱动接收用户的数据库访问请求,也即用户可以直接使用jdbc驱动访问数据库,虽然用户通过所持用户端连接代理jdbc驱动并不能直接用于访问数据库,但是对于用户来讲,可以采用直接使用jdbc驱动访问数据库的语句来连接代理jdbc驱动,发起数据库访问请求,不需拘泥于业务系统客户端的限制,提高了灵活的扩展性能。
30.用户的数据库访问请求携带业务系统中用户的用户信息及待访问的jdbc url。
31.步骤s2、将所述数据库访问请求透传至目标jdbc驱动。
32.代理jdbc驱动只是用于接收数据库访问请求,本身并无解析能力。因此,通过代理jdbc驱动接收用户的数据库访问请求之后,将数据库访问请求透传至目标jdbc驱动。透传可以是代理jdbc驱动将接收的信息原封不动地传递到目标jdbc驱动。
33.步骤s3、通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url。
34.目标jdbc驱动具有数据解析和处理能力。根据数据库访问请求的数据特点,目标jdbc驱动通过解析数据库访问请求,获取用户信息及jdbc url。
35.步骤s4、根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限。
36.根据获取的用户信息,调用业务系统验证用户是否具有访问jdbc url的权限。这个权限验证属于业务系统对于用户的权限验证,通过业务权限验证验证用户是否具有访问jdbc url的权限。
37.步骤s5、响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
38.在业务系统对于用户的验证通过后,即通过业务系统权限验证判定用户具有访问jdbc url的权限,则进一步进行业务系统关于数据库访问的权限验证,对业务系统对于数据库访问的权限进行验证,验证通过后允许用户访问数据库。
39.本发明实施例提供的数据库访问权限验证方法,通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求,将数据库访问请求透传至目标jdbc驱动,通过目标jdbc驱动解析数据库访问请求,获取用户信息及jdbc url,根据用户信息,调用业务系统验证用户是否具有访问jdbc url的权限,响应于用户具有访问jdbc url的权限,进行业务系统关于数据库访问的权限验证,验证通过后允许用户访问数据库,用户可以直接使用jdbc驱动发起数据库访问请求,并能通过业务系统鉴权,实现了业务扩展的灵活性和灵活的权限控制的统一。
40.根据本发明实施例提供的一种数据库访问权限验证方法,所述数据库访问请求是所述用户通过用户端调用connect方法发起的;所述用户信息封装在所述connect方法的properties info参数中。
41.图1、图2所示的数据库访问权限验证方法中,无论是用户还是业务系统,使用jdbc访问数据库时,用户名密码是发到数据库端进行验证的,程序员无法干涉。而本发明实施例允许用户仍能通过jdbc直接访问数据库,需要解决在jdbc请求中传递业务系统的用户信息,并能调用业务系统验证权限的问题。
42.用户通过jdbc访问数据库时,一般只能提供如下几个参数:jdbc url、数据库端的用户名/密码、查询的sql。其中数据库端的用户名/密码、查询sql无法附加其他信息,所以,业务系统的用户信息只能通过jdbc url传递。但是calcite本身没有暴露任何接口,以用于在执行sql查询流程中插入业务解析逻辑。
43.通过分析calcite jdbc driver的源码,发现在每次向数据库发起查询前,都会调用connect(string url,properties info)获取数据库连接,其中参数url,是jdbc url,参数info是从url中解析出来的属性(例如数据库端的用户名/密码)。如果在url中还附加了业务系统的用户信息,则也会包含在info中。
44.因此,本发明实施例中的数据库访问请求是用户通过用户端调用connect方法发起的,用户信息通过jdbc url传递并封装在connect方法的properties info参数中。
45.本发明实施例提供的数据库访问权限验证方法,通过调用connect方法发起数据库访问请求,用户信息封装在connect方法的properties info参数中,解决了在jdbc请求中传递业务系统的用户信息的问题,以供调用业务系统验证权限进一步验证用户权限。
46.根据本发明实施例提供的一种数据库访问权限验证方法,在所述通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求之前,所述方法还包括:通过继承动态数据管理框架的原始jdbc驱动实现所述目标jdbc驱动,并通过重载所述原始jdbc驱动的原始connect方法,得到所述connect方法。
47.为实现获取到properties info参数中的用户信息,并调用业务系统进行权限验证,本发明实施例采用的方法是,实现一个新的jdbc driver(目标jdbc驱动),其继承calcite jdbc driver,并重载其connect(string url,properties info)方法,在重载的方法中,通过properties info参数获取到业务系统的用户信息,并调用业务系统验证此用户是否有使用此url的权限。
48.其中,原始jdbc驱动指动态数据管理框架自带的jdbc驱动。原始connect方法是指动态数据管理框架自带的用于连接jdbc驱动的connect方法。
49.本发明实施例提供的数据库访问权限验证方法,通过继承动态数据管理框架的原始jdbc驱动实现目标jdbc驱动,并通过重载原始jdbc驱动的原始connect方法,得到connect方法,为通过解析获取业务系统的用户信息及jdbc url提供了基础。
50.根据本发明实施例提供的一种数据库访问权限验证方法,所述通过所述目标jdbc驱动解析所述数据访问请求,获取所述用户信息及所述jdbc url,包括:通过所述目标jdbc驱动解析所述connect方法的properties info参数,获取所述用户信息;通过所述目标jdbc驱动解析所述connect方法的string url参数,获取所述jdbc url。
51.目标jdbc驱动可以通过解析connect(string url,properties info)方法的properties info参数,获取用户信息;通过目标jdbc驱动解析connect(string url,properties info)方法的string url参数,获取jdbc url。
52.本发明实施例提供的数据库访问权限验证方法,通过目标jdbc驱动解析connect方法的properties info参数,获取用户信息,通过目标jdbc驱动解析connect方法的string url参数,获取jdbc url,实现了用户信息和jdbc url的获取。
53.根据本发明实施例提供的一种数据库访问权限验证方法,所述进行所述业务系统关于数据库访问的权限验证,包括:通过调用所述原始connect方法,进行所述业务系统关于数据库访问的权限验证。
54.在验证用户具有访问jdbc url的权限之后,进行业务系统关于数据库访问的权限验证。在进行业务系统关于数据库访问的权限验证,可以利用动态数据管理框架的原始jdbc驱动的原始connect方法,也即可以用动态数据管理框架自带的驱动和connect方法进行验证即可。connect方法中的properties info参数可以封装业务系统在数据库的用户名/密码的信息,从而验证业务系统对于数据库的访问权限。
55.本发明实施例提供的数据库访问权限验证方法,通过调用原始connect方法,进行业务系统关于数据库访问的权限验证,利用动态数据管理框架自带的驱动和connect方法验证业务系统权限,节约了开发资源。
56.根据本发明实施例提供的一种数据库访问权限验证方法,所述方法还包括:响应于所述用户不具有访问所述jdbc url的权限,抛出异常信息。
57.在根据用户信息,调用业务系统验证用户是否具有访问jdbc url的权限之后,若用户不具有访问jdbc url的权限,抛出异常信息。
58.在通过调用原始connect方法,进行业务系统关于数据库访问的权限验证之后,若业务系统不具有数据库访问权限,则也可抛出异常信息。
59.核心代码示意如下:
[0060][0061]
这是一个新的jdbc driver(jdbc驱动),通过java的spi机制,将其注册到java的drivermanager加载路径中,使得jdbc代理能使用此新的driver解析用户请求,从而实现业务权限验证。
[0062]
本发明实施例提供的数据库访问权限验证方法,通过响应于用户不具有访问jdbc url的权限,抛出异常信息,有利于对于异常访问进行及时处理。
[0063]
本发明实施例提供的数据库访问权限验证方法,在直接使用jdbc访问数据库的过程中,增加业务系统的权限验证,适用于即需要使用jdbc访问数据库,又需要灵活的权限控制的应用场景。
[0064]
需要说明的是,本实施例所给出的多个优选实施方式,在逻辑或结构相互不冲突的前提下,可以自由组合,本发明对此不做限定。
[0065]
下面对本发明实施例提供的数据库访问权限验证装置进行描述,下文描述的数据库访问权限验证装置与上文描述的数据库访问权限验证方法可相互对应参照。
[0066]
图5是本发明实施例提供的数据库访问权限验证装置的结构示意图。如图5所示,该装置包括接收模块10、透传模块20、解析模块30、第一验证模块40及第二验证模块50,其中:接收模块10用于:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;透传模块20用于:将所述数据库访问请求透传至目标jdbc驱动;解析模块30用于:通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;第一验证模块40用于:根
据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;第二验证模块50用于:响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
[0067]
本发明实施例提供的数据库访问权限验证装置,通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求,将数据库访问请求透传至目标jdbc驱动,通过目标jdbc驱动解析数据库访问请求,获取用户信息及jdbc url,根据用户信息,调用业务系统验证用户是否具有访问jdbc url的权限,响应于用户具有访问jdbc url的权限,进行业务系统关于数据库访问的权限验证,验证通过后允许用户访问数据库,用户可以直接使用jdbc驱动发起数据库访问请求,并能通过业务系统鉴权,实现了业务扩展的灵活性和灵活的权限控制的统一。
[0068]
根据本发明实施例提供的一种数据库访问权限验证装置,所述数据库访问请求是所述用户通过用户端调用connect方法发起的;所述用户信息封装在所述connect方法的properties info参数中。
[0069]
本发明实施例提供的数据库访问权限验证装置,通过调用connect方法发起数据库访问请求,用户信息封装在connect方法的properties info参数中,解决了在jdbc请求中传递业务系统的用户信息的问题,以供调用业务系统验证权限进一步验证用户权限。
[0070]
根据本发明实施例提供的一种数据库访问权限验证装置,所述装置还包括预处理模块,用于在接收模块10通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求之前,通过继承动态数据管理框架的原始jdbc驱动实现所述目标jdbc驱动,并通过重载所述原始jdbc驱动的原始connect方法,得到所述connect方法。
[0071]
本发明实施例提供的数据库访问权限验证装置,通过继承动态数据管理框架的原始jdbc驱动实现目标jdbc驱动,并通过重载原始jdbc驱动的原始connect方法,得到connect方法,为通过解析获取业务系统的用户信息及jdbc url提供了基础。
[0072]
根据本发明实施例提供的一种数据库访问权限验证装置,解析模块30在用于通过所述目标jdbc驱动解析所述数据访问请求,获取所述用户信息及所述jdbc url时,具体用于:通过所述目标jdbc驱动解析所述connect方法的properties info参数,获取所述用户信息;通过所述目标jdbc驱动解析所述connect方法的string url参数,获取所述jdbc url。
[0073]
本发明实施例提供的数据库访问权限验证装置,通过目标jdbc驱动解析connect方法的properties info参数,获取用户信息,通过目标jdbc驱动解析connect方法的string url参数,获取jdbc url,实现了用户信息和jdbc url的获取。
[0074]
根据本发明实施例提供的一种数据库访问权限验证装置,第二验证模块50在用于进行所述业务系统关于数据库访问的权限验证时,具体用于:通过调用所述原始connect方法,进行所述业务系统关于数据库访问的权限验证。
[0075]
本发明实施例提供的数据库访问权限验证装置,通过调用原始connect方法,进行业务系统关于数据库访问的权限验证,利用动态数据管理框架自带的驱动和connect方法验证业务系统权限,节约了开发资源。
[0076]
根据本发明实施例提供的一种数据库访问权限验证装置,所述装置还包括异常处理模块,用于:响应于所述用户不具有访问所述jdbc url的权限,抛出异常信息。
[0077]
本发明实施例提供的数据库访问权限验证装置,通过响应于用户不具有访问jdbc url的权限,抛出异常信息,有利于对于异常访问进行及时处理。
[0078]
图6是本发明实施例提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行数据库访问权限验证方法,该方法包括:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;将所述数据库访问请求透传至目标jdbc驱动;通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
[0079]
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0080]
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据库访问权限验证方法,该方法包括:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;将所述数据库访问请求透传至目标jdbc驱动;通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
[0081]
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据库访问权限验证方法,该方法包括:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;将所述数据库访问请求透传至目标jdbc驱动;通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。
[0082]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单
元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0083]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0084]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种数据库访问权限验证方法,其特征在于,包括:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;将所述数据库访问请求透传至目标jdbc驱动;通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。2.根据权利要求1所述的数据库访问权限验证方法,其特征在于,所述数据库访问请求是所述用户通过用户端调用connect方法发起的;所述用户信息封装在所述connect方法的properties info参数中。3.根据权利要求1所述的数据库访问权限验证方法,其特征在于,在所述通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求之前,所述方法还包括:通过继承动态数据管理框架的原始jdbc驱动实现所述目标jdbc驱动,并通过重载所述原始jdbc驱动的原始connect方法,得到所述connect方法。4.根据权利要求1所述的数据库访问权限验证方法,其特征在于,所述通过所述目标jdbc驱动解析所述数据访问请求,获取所述用户信息及所述jdbc url,包括:通过所述目标jdbc驱动解析所述connect方法的properties info参数,获取所述用户信息;通过所述目标jdbc驱动解析所述connect方法的string url参数,获取所述jdbc url。5.根据权利要求1所述的数据库访问权限验证方法,其特征在于,所述进行所述业务系统关于数据库访问的权限验证,包括:通过调用所述原始connect方法,进行所述业务系统关于数据库访问的权限验证。6.根据权利要求1所述的数据库访问权限验证方法,其特征在于,所述方法还包括:响应于所述用户不具有访问所述jdbc url的权限,抛出异常信息。7.一种数据库访问权限验证装置,其特征在于,包括:接收模块,用于:通过jdbc代理的代理jdbc驱动接收用户的数据库访问请求;其中,所述数据库访问请求携带业务系统中所述用户的用户信息及待访问的jdbc url;透传模块,用于:将所述数据库访问请求透传至目标jdbc驱动;解析模块,用于:通过所述目标jdbc驱动解析所述数据库访问请求,获取所述用户信息及所述jdbc url;第一验证模块,用于:根据所述用户信息,调用所述业务系统验证所述用户是否具有访问所述jdbc url的权限;第二验证模块,用于:响应于所述用户具有访问所述jdbc url的权限,进行所述业务系统关于数据库访问的权限验证,验证通过后允许所述用户访问数据库。8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所
述数据库访问权限验证方法的步骤。9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据库访问权限验证方法的步骤。10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据库访问权限验证方法的步骤。

技术总结
本发明实施例提供一种数据库访问权限验证方法及装置,该方法包括:通过JDBC代理的代理JDBC驱动接收用户的数据库访问请求;数据库访问请求携带业务系统中用户信息及JDBC url;将数据库访问请求透传至目标JDBC驱动;通过目标JDBC驱动解析数据库访问请求,获取用户信息及JDBC url;根据用户信息,调用业务系统验证用户是否具有访问JDBC url的权限;若用户有访问JDBC url的权限,进行业务系统关于数据库访问的权限验证,验证通过后允许用户访问数据库。本发明实施例用户直接使用JDBC驱动发起数据库访问请求,并能通过业务系统鉴权,实现了业务扩展的灵活性和灵活的权限控制的统一。业务扩展的灵活性和灵活的权限控制的统一。业务扩展的灵活性和灵活的权限控制的统一。


技术研发人员:彭建
受保护的技术使用者:贝壳找房(北京)科技有限公司
技术研发日:2023.03.06
技术公布日:2023/7/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐