CN111339552B - 一种数据库访问方法及装置 - Google Patents
一种数据库访问方法及装置 Download PDFInfo
- Publication number
- CN111339552B CN111339552B CN202010088001.1A CN202010088001A CN111339552B CN 111339552 B CN111339552 B CN 111339552B CN 202010088001 A CN202010088001 A CN 202010088001A CN 111339552 B CN111339552 B CN 111339552B
- Authority
- CN
- China
- Prior art keywords
- proxy server
- connection
- proxy
- user
- mysql
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004891 communication Methods 0.000 claims abstract description 40
- 238000004590 computer program Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 239000003795 chemical substances by application Substances 0.000 description 38
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种数据库访问方法及装置,尤其涉及通信领域,方法包括:通过关系型数据库管理***MySQL驱动接口与代理服务器进行连接时,确定自定义连接参数;根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂;根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信。在进行正向代理访问MySQL服务器时,获取自定义连接参数,并使用自定义参数对应的自定义代理工厂进行加密连接,不需要对MySQL驱动接口改造,便于在各种实施场景应用,应用范围广,简单易行。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种数据库访问方法及装置。
背景技术
一个正规的项目生产环境往往只有DBA(数据库管理员)对mysql数据库拥有读写权限,而开发人员一般只拥有只读权限。在运营和财务人员需要核对数据时,就需要由DBA先导出mysql数据库中的所有数据,然后由开发人员将数据导入本地数据库,从而通过sql语句查询出目标数据并导出excel表提供给运营和财务人员。
随着数据库技术和网络技术的不断发展,基于网络和数据库的数据库应用***得到越来越广泛的应用。这些数据库***担负着存储和管理信息的任务,泄漏或破坏这些信息将会给企业和国家造成重大损失。因此,数据库***的安全性问题越来越受到人们的重视。
为了数据库***的安全,现有技术中通常是通过代理访问目标数据库,但是现有技术中,虽然可以通过正向代理方式访问目标数据库,但是其认证所用的用户名密码却是直接存放在公用的环境全局变量里取用,这样需要同时连接多个代理时候就会出现用户名密码互相污染影响的问题。
发明内容
本申请实施例提供一种数据库访问方法及装置,能够在连接每个代理时进行加密连接,保证了用户名密码安全性。
一方面,本申请实施例提供一种数据库访问方法,包括:
通过关系型数据库管理***MySQL驱动接口与代理服务器进行连接时,确定自定义连接参数;
根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂;
根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信。
可选的,所述确定自定义连接参数前,还包括:
降低MySQL驱动接口的原生连接参数的优先级,以使所述原生连接参数的优先级低于所述自定义连接参数的优先级。
可选的,所述根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器进行加密连接,包括:
根据所述自定义代理工厂与所述代理服务器进行握手协议认证;
在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接。
可选的,所述针对所述代理服务器的连接参数包括所述代理服务器的地址、所述代理服务器的端口;
根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接,包括:
将所述代理服务器的地址、所述代理服务器的端口与所述代理服务器进行绑定,并在绑定成功后确定与所述代理服务器进行加密连接成功。
可选的,所述针对所述代理服务器的连接参数包括针对所述代理服务器的用户名以及对应的认证密码;
所述根据所述自定义代理工厂与所述代理服务器进行握手协议认证,包括:
根据所述自定义代理工厂、所述代理服务器的用户名以及对应的认证密码与所述代理服务器进行握手协议认证;
在确定所述代理服务器针对所述代理服务器的用户名以及对应的认证密码验证通过后,则确定所述握手协议认证通过。
可选的,所述在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接前,还包括:
通过所述自定义代理工厂与所述代理服务器确定通信规则;
根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接后,还包括:
根据所述通信规则与所述代理服务器进行加密通信传输。
一方面,本申请实施例提供一种数据库访问装置,包括:
自定义参数获取单元,用于通过关系型数据库管理***MySQL驱动接口与代理服务器进行连接时,确定自定义连接参数;
代理工厂确定单元,用于根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂;
数据库访问单元,用于根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信。
可选的,所述自定义连接参数确定单元还用于:
降低MySQL驱动接口的原生连接参数的优先级,以使所述原生连接参数的优先级低于所述自定义连接参数的优先级。
可选的,所述数据库访问单元具体用于:
根据所述自定义代理工厂与所述代理服务器进行握手协议认证;
在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接。
可选的,所述针对所述代理服务器的连接参数包括所述代理服务器的地址、所述代理服务器的端口;
所述数据库访问单元具体用于:
将所述代理服务器的地址、所述代理服务器的端口与所述代理服务器进行绑定,并在绑定成功后确定与所述代理服务器进行加密连接成功。
可选的,所述针对所述代理服务器的连接参数包括针对所述代理服务器的用户名以及对应的认证密码;
所述数据库访问单元具体用于:
根据所述自定义代理工厂、所述代理服务器的用户名以及对应的认证密码与所述代理服务器进行握手协议认证;
在确定所述代理服务器针对所述代理服务器的用户名以及对应的认证密码验证通过后,则确定所述握手协议认证通过。
可选的,所述数据库访问单元还用于:
通过所述自定义代理工厂与所述代理服务器确定通信规则;
根据所述通信规则与所述代理服务器进行加密通信传输。
一方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种数据库访问方法的步骤。
一方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述任一种数据库访问方法的步骤。
本申请实施例提供的数据库访问方法中,在进行正向代理访问MySQL服务器时,获取自定义连接参数,并使用自定义参数对应的自定义代理工厂进行加密连接。由于在正向代理访问MySQL服务器时,需要认证正向代理的用户名和密码,在现有技术中,从全局环境变量中获取固定的用户名和密码变量,但是在连接不同正向代理的多个MySQL服务器时,需要获取多个用户名和密码变量,这些用户名和密码变量是放置在全局环境变量中的,会出现相互污染的情况,导致正向代理认证失败的情况。可以认为,本申请实施例中的数据库访问方法,可以在连接不同MySQL驱动接口时,使用不同的定义参数以及不同的自定义代理工厂进行连接,这样与不同MySQL驱动接口连接时,不同的用户名密码不会相互污染,保证了数据库访问的安全性。
进一步地,在本申请实施例中,与MySQL驱动接口连接的流程逻辑没有变化,只是使用了不同的连接参数,不需要对MySQL驱动接口改造,便于在各种实施场景应用,应用范围广,简单易行。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中提供的一种数据库访问方法的应用场景架构示意图;
图2为本申请实施例提供的一种数据库访问方法的流程示意图;
图3为本申请实施例提供的一种终端设备与代理服务器之间的交互流程示意图;
图4为本申请实施例提供的一种数据库访问方法的流程示意图;
图5为本申请实施例提供的一种数据库访问装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
数据库(Database):是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理***(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
MySQL:为关系型数据库(Relational Database Management System),这种所谓的“关系型”可以理解为“表格”的概念,一个关系型数据库由一个或数个表格组成。
正向代理:意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。在正向代理过程中,位于客户端和原始服务器(origin server)之间的服务器作为代理服务器。
驱动:一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口,操作***只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。
SOCKS:防火墙安全会话转换协议(Socks:Protocol for sessions traversalacross firewall securely)SOCKS协议提供一个框架,为在TCP和UDP域中的客户机/服务器应用程序能更方便安全地使用网络防火墙所提供的服务。
在具体实践过程中,本申请的发明人发现,在现有技术中,若存在一个客户端与多个MySQL驱动接口连接时,与每个MySQL驱动接口都需要进行用户与密码验证的过程,但是现有技术中,多个用户与密码存放在公用的环境全局变量里取用,这样需要同时连接多个代理时候就会出现用户名密码互相污染影响的问题。
基于上述现有技术的缺点,本申请的发明人构思了一种数据库访问方法,发明人希望沿用原MySQL驱动接口的逻辑,不对驱动接口的进行改造,但是改变了连接参数,通过连接参数连接对应的自定义代理工厂,而不是原生连接参数对应的原生代理工厂,自定义代理工厂可以针对每对用户名和密码建立不同的加密连接。所以在本申请实施例中,首先确定自定义连接参数,通过自定义连接参数,调用对应的自定义代理工厂,通过自定义代理工厂建立加密连接,并在加密连接后访问MySQL服务器。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案的架构做一些简单介绍,需要说明的是,以下介绍的架构仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
参考图1,其为本申请实施例提供的数据库访问方法的应用架构图。该架构至少包括多个终端设备101、多个代理服务器102以及多个MySQL服务器103,示例性的,如图1所示,包括M个终端设备101,为图1中所示的终端设备101~1至终端设备101~M,M为正整数,M的值本发明实施例并不进行限制。
每个终端设备101能够与至少一个代理服务器102进行通信,通过至少一个代理服务器102访问MySQL服务器103。在本申请实施例中,一个代理服务器102可以与一个MySQL服务器103进行连接,也可以与多个MySQL服务器103进行连接。在每个代理服务器102具有MySQL驱动接口,每个终端设备101通过MySQL驱动接口与代理服务器102进行通信。
在本申请实施例中,终端设备101可以是手机、个人电脑(personal computer,PC)、平板电脑(PAD)、掌上电脑(Personal Digital Assistant,PDA)、笔记本电脑或者智能穿戴式设备(例如智能手表和智能手环)等终端设备。
终端设备101可以包括一个或多个处理器1011、存储器1012、与代理服务器102交互的I/O接口1013以及显示面板1014等。
代理服务器102可以为包括为终端设备101中安装的应用程序,或者终端设备101中运行的应用程序、应用网站的后台服务器。服务器102可以包括一个或多个处理器1021、存储器1022以及与终端设备101交互的I/O接口1023等。此外,代理服务器102还可以配置数据库1024。
代理服务器102可以是服务器集群,也可以是单个服务器。同时,服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
代理服务器102可以是一种云计算模块,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
数据库1024还可以为云数据库,云数据库是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。在本申请实施例中,各服务器202通过云数据库的访问结构访问云数据库。
终端设备101与代理服务器102之间可以通过一个或者多个网络104进行通信连接。该网络104可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(Wireless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。
同样的,MySQL服务器103可以一个或多个处理器1031、存储器1032以及与代理服务器102交互的I/O接口1033等。此外,MySQL服务器103还可以配置数据库1034。在MySQL服务器103中具有MySQL数据库。
MySQL服务器103可以是服务器集群,也可以是单个服务器。同时,MySQL服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
MySQL服务器103可以是一种云计算模块,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
数据库1034还可以为云数据库,云数据库是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。在本申请实施例中,各服务器202通过云数据库的访问结构访问云数据库。
代理服务器102与MySQL服务器103之间可以通过一个或者多个网络105进行通信连接。该网络105可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(Wireless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。
当然,本申请实施例提供的架构并不限用于图1所示的结构,本申请实施例并不进行限制。为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
下面结合图1所示的应用场景架构,对本申请实施例提供的技术方案进行说明。
图2为本发明实施例提供的一种数据库访问方法的流程示意图,该方法例如可以应用于如图1所示的场景中,该方法的流程描述如下。
步骤S201,通过关系型数据库管理***MySQL驱动接口与代理服务器进行连接时,确定自定义连接参数。
在本申请实施例中,在进行正向代理的过程中,需要通过MySQL驱动接口与代理服务器进行连接,在连接过程中,没有使用原生连接参数,而是使用的自定义连接参数。其中重要的原因是,MySQL驱动接口不能进行好的扩展,若连接到MySQL驱动接口中的原生连接参数,就会按照原生连接过程进行连接,不能实现本申请实施例中的连接过程,所以在本申请实施例中,需要构思一种方法,在连接MySQL驱动接口时,连接自定义连接参数,通过定义连接参数与自定义代理工厂连接。
在本申请实施例中,自定义连接参数可以通过修改指令加入到MySQL驱动接口中,或者可以通过在调用连接参数时,指定自定义连接参数。
由于在本申请实施例中,想沿用MySQL驱动接口的逻辑,MySQL驱动接口的原生逻辑是需要连接原生连接参数,具体的,在MySQL驱动接口中可以包括多个连接参数,原生连接参数为其中一个参数,在现有技术中,原生连接参数的优先级高于其他连接参数的优先级,所以一种可选的实施例中,在连接过程中并没有指定使用自定义连接参数,而是将自定义连接参数的优先级设置为高于原生连接参数的优先级,则在连接过程中,按照从高到低优先级的顺序确定连接参数,则可以确定自定义连接参数。
一种可选的实施例中,由于SOCKS在TCP和UDP域中的客户端/服务器应用程序能更方便安全地使用网络防火墙所提供的服务,所以在本申请实施例中是需要使用SOCKS协议的,所以在本申请实施例中,自定义连接参数可以是socketFactory参数。
还有一种可选的实施例,自定义连接参数也可以有多个,分为不同的优先级,且每个优先级都高于原生连接参数的优先级,在建立连接时,通过不同的终端与不同的代理服务器连接时,调用不同的自定义连接参数。
步骤S202,根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂。
在本申请实施例中,自定义连接参数与自定义代理工厂是存在对应关系的,代理工厂指的是一种加工方法,代理工厂是工厂模式中的一种加工方法。
工厂模式(Factory Pattern)是Java中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
可以理解,不同的代理工厂使用不同的加工方法进行创建对象等过程。
在本申请实施例中,原生连接参数对应原生代理工厂,而自定义连接参数对应自定义代理工厂。
由于原生连接参数被弃用,所以在本申请实施例中,是通过自定义代理工厂创建与MySQL驱动接口的连接。
在本申请实施例中,自定义代理工厂能够建立与现有技术中原生代理工厂不同的连接方式,该方式可以是通过指令进行配置的,或者是通过指令加入到MySQL驱动接口的连接逻辑过程中的,在此不做限定。
步骤S203,根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信。
具体的,在本申请实施例中,自定义代理工厂能够实现加密连接,并在进行加密连接后与MySQL服务器进行通信,即完成正向代理的过程,可以获取MySQL服务器中的数据内容。
在本申请实施例中,自定义代理工厂根据针对不同的代理服务器的连接参数进行加密连接,也就是说,针对不同的代理服务器的连接参数,可以存在不同的自定义代理工厂,也存在着不同的加密连接,也就是说,能够实现一个终端设备与多个代理服务器进行连接时,该终端设备与多个代理服务器之间的认证用户名以及密码都是相互隔离的,保证了连接的安全性。
具体的,在本申请实施例中,为了能够进行加密连接,首先需要进行握手协议认证,也就是说,根据自定义代理工厂与代理服务器进行握手协议认证,在握手协议认证通过后,根据针对所述代理服务器的连接参数与所述代理服务器进行加密连接。
在本申请实施例中,握手协议认证过程可以是三次握手过程,以自定义代理工厂A与代理服务器B进行握手协议认证过程进行解释,首先A向B发送syn同步请求,B在接受到syn请求后,会回复syn ack消息给A,A再次发送回复消息ack给B,完成握手认证。
可选的,在本申请实施例中,针对代理服务器的连接参数包括代理服务器的地址、代理服务器的端口,在进行加密连接过程中,将代理服务器的地址、代理服务器的端口与代理服务器进行绑定,例如指定了代理服务器的IP地址1以及端口1作为终端设备与代理服务器连接的地址以及端口,当然,还存在其它终端设备指定了其它地址以及端口,将代理服务器的地址、代理服务器的端口与代理服务器进行绑定就实现了终端设备与代理服务器之间的指定连接过程。
一种可选的实施例中,建立的加密连接为SOCKS连接,所以连接参数包括socksProxyHostEx、socksProxyPort,socksProxyHostEx指的是代理服务器的地址,socksProxyPort指的是代理服务器的端口。
进一步地,在本申请实施例中,自定义代理工厂与代理服务器进行握手协议认证过程中还包括认证自定义代理工厂对应的终端设备的用户名以及密码,在握手协议认证过程中,若代理服务器确定用户名以及密码正确,则会发送syn ack消息,若代理服务器确定用户名以及密码错误,则不会发送syn ack消息。
可选的,在本申请实施例中,终端设备的用户名以及密码可以用socksProxyUserNameEx、socksProxyPasswordEx来表征,即若创建SOCKS连接,则socksProxyUserNameEx表征用户名,socksProxyPasswordEx表征密码。
可选的,在本申请实施例中,在建立连接过程中,还可以确定通信规则,即在握手协议认证过程通过后,确定与代理服务器之间的通信规则,通过该通信规则进行通信。
示例性的进行解释,终端设备A与代理服务器B进行连接,访问MySQL服务器中的数据,终端设备A与代理服务器B之间确定的通信规则为第一通信规则,代理服务器B与MySQL服务器之间确定的通信规则为第二通信规则,则终端设备A通过第一通信规则与代理服务器B进行通信,代理服务器B将通信内容从第一通信规则转换为第二通信规则,向MySQL服务器获取数据,并在接受到MySQL服务器发送的第二通信规则的数据后,将第二通信规则的数据转换为第一通信规则的数据发送给终端设备A。
可选的,在本申请实施例中,通信规则可以是加密方式,即双方都认可的加密方式,加密方式既可以是现有技术中公开的加密方式,例如哈希值加密等加密方式,也可以是终端设备与代理服务器之间约定的加密方式,该加密方式是双方新建立的加密方式。
通过上述实施例的方法,可以实现通过MySQL驱动接口与代理服务器进行加密连接,并通过代理服务器与MySQL服务器进行通信。
为了解释根据自定义代理工厂以及针对代理服务器的连接参数与代理服务器建立加密连接的过程,在此举例说明,针对代理服务器的连接参数包括代理服务器的地址、代理服务器的端口、用户名以及对应的认证密码以及通信规则。
如图3所示,示意性展示了与代理服务器建立加密连接的过程,具体包括:
步骤S301,终端设备A通过自定义代理工厂向代理服务器B发送syn消息,消息中携带了用户名以及对应的认证密码、代理服务器的地址、代理服务器的端口;
步骤S302,代理服务器B确定用户名以及对应的认证密码是否正确,若正确,则执行步骤S303;否则执行步骤S304;
步骤S303,代理服务器B将终端设备A与代理服务器的地址、代理服务器的端口进行绑定,执行步骤S305;
步骤S304,代理服务器B拒绝与终端设备A进行通信;
步骤S305,代理服务器B向终端设备A发送syn ack消息;
步骤S306,终端设备A向代理服务器B发送ack消息;
步骤S307,终端设备A向代理服务器B发送通信规则;
步骤S308,代理服务器B将通信规则与终端设备A进行绑定;
步骤S309,代理服务器B向终端设备A发送通信规则建立成功消息。
为了更好的解释本申请实施例,下面结合一种具体的实施场景描述本申请实施例提供的一种数据库访问方法,具体如图4所示,包括:
步骤S401,终端设备通过MySQL驱动接口进行连接时,确定是否存在原生连接参数,若存在,则执行步骤S402,否则执行步骤S403;
步骤S402,确定当前原生连接参数的优先级是否低于自定义连接参数的优先级,若是,则执行步骤S404,否则执行步骤S403;
步骤S403,不能进行加密连接,则通过原生代理工厂进行连接;
步骤S404,与自定义连接参数连接,调用对应的自定义代理工厂;
步骤S405,通过自定义代理工厂以及用户名以及对应的认证密码、代理服务器的地址、代理服务器的端口的连接参数进行加密连接,并建立了约定的加密通信规则;
步骤S406,接收通过加密通信规则发送的获取MySQL服务器数据消息的指令;
步骤S407,解密指令,并向MySQL服务器发送获取数据消息指令;
步骤S408,接收MySQL服务器发送的数据消息;
步骤S409,将数据消息按照约定的加密通信规则发送给终端设备。
基于相同的技术构思,本申请实施例提供了一种数据库访问装置500,如图5所示,包括:
自定义参数获取单元501,用于通过关系型数据库管理***MySQL驱动接口与代理服务器进行连接时,确定自定义连接参数;
代理工厂确定单元502,用于根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂;
数据库访问单元503,用于根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信。
可选的,所述自定义连接参数获取单元501还用于:
降低MySQL驱动接口的原生连接参数的优先级,以使所述原生连接参数的优先级低于所述自定义连接参数的优先级。
可选的,所述数据库访问单元503具体用于:
根据所述自定义代理工厂与所述代理服务器进行握手协议认证;
在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接。
可选的,所述针对所述代理服务器的连接参数包括所述代理服务器的地址、所述代理服务器的端口;
所述数据库访问单元503具体用于:
将所述代理服务器的地址、所述代理服务器的端口与所述代理服务器进行绑定,并在绑定成功后确定与所述代理服务器进行加密连接成功。
可选的,所述针对所述代理服务器的连接参数包括针对所述代理服务器的用户名以及对应的认证密码;
所述数据库访问单元503具体用于:
根据所述自定义代理工厂、所述代理服务器的用户名以及对应的认证密码与所述代理服务器进行握手协议认证;
在确定所述代理服务器针对所述代理服务器的用户名以及对应的认证密码验证通过后,则确定所述握手协议认证通过。
可选的,所述数据库访问单元503还用于:
通过所述自定义代理工厂与所述代理服务器确定通信规则;
根据所述通信规则与所述代理服务器进行加密通信传输。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的数据库访问方法中所包括的步骤。
其中,处理器601是计算机设备的控制中心,可以利用各种接口和线路连接终端设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而获得客户端地址。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行数据库访问方法的步骤。
上述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种数据库访问方法,其特征在于,所述方法包括:
通过关系型数据库管理***MySQL驱动接口与代理服务器进行连接时,确定自定义连接参数;
根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂;
根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信;
所述确定自定义连接参数前,还包括:
降低MySQL驱动接口的原生连接参数的优先级,以使所述原生连接参数的优先级低于所述自定义连接参数的优先级;
所述针对所述代理服务器的连接参数包括针对所述代理服务器的用户名以及对应的认证密码;所述根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器进行加密连接,包括:
根据所述自定义代理工厂、所述代理服务器的用户名以及对应的认证密码与所述代理服务器进行握手协议认证;
在确定所述代理服务器针对所述代理服务器的用户名以及对应的认证密码验证通过后,则确定所述握手协议认证通过;
在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接。
2.根据权利要求1所述的方法,其特征在于,所述针对所述代理服务器的连接参数包括所述代理服务器的地址、所述代理服务器的端口;
根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接,包括:
将所述代理服务器的地址、所述代理服务器的端口与所述代理服务器进行绑定,并在绑定成功后确定与所述代理服务器进行加密连接成功。
3.根据权利要求1所述的方法,其特征在于,所述在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接前,还包括:
通过所述自定义代理工厂与所述代理服务器确定通信规则;
根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接后,还包括:
根据所述通信规则与所述代理服务器进行加密通信传输。
4.一种数据库访问装置,其特征在于,包括:
自定义参数获取单元,用于通过关系型数据库管理***MySQL驱动接口 与代理服务器进行连接时,确定自定义连接参数;
代理工厂确定单元,用于根据所述自定义连接参数,调用所述自定义连接参数对应的自定义代理工厂;
数据库访问单元,用于根据所述自定义代理工厂以及针对所述代理服务器的连接参数与所述代理服务器建立加密连接,并在建立加密连接后通过所述代理服务器与MySQL服务器进行通信;
所述自定义连接参数确定单元还用于:
降低MySQL驱动接口的原生连接参数的优先级,以使所述原生连接参数的优先级低于所述自定义连接参数的优先级;
所述针对所述代理服务器的连接参数包括针对所述代理服务器的用户名以及对应的认证密码;所述数据库访问单元具体用于:
根据所述自定义代理工厂、所述代理服务器的用户名以及对应的认证密码与所述代理服务器进行握手协议认证;
在确定所述代理服务器针对所述代理服务器的用户名以及对应的认证密码验证通过后,则确定所述握手协议认证通过;
在握手协议认证通过后,根据所述针对所述代理服务器的连接参数与所述代理服务器进行加密连接。
5.根据权利要求4所述的装置,其特征在于,所述针对所述代理服务器的连接参数包括所述代理服务器的地址、所述代理服务器的端口;
所述数据库访问单元具体用于:
将所述代理服务器的地址、所述代理服务器的端口与所述代理服务器进行绑定,并在绑定成功后确定与所述代理服务器进行加密连接成功。
6.根据权利要求4所述的装置,其特征在于,所述数据库访问单元还用于:
通过所述自定义代理工厂与所述代理服务器确定通信规则;
根据所述通信规则与所述代理服务器进行加密通信传输。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~3任一权利要求所述方法的步骤。
8.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计 算机设备上运行时,使得所述计算机设备执行权利要求1~3任一权利要求所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088001.1A CN111339552B (zh) | 2020-02-12 | 2020-02-12 | 一种数据库访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010088001.1A CN111339552B (zh) | 2020-02-12 | 2020-02-12 | 一种数据库访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111339552A CN111339552A (zh) | 2020-06-26 |
CN111339552B true CN111339552B (zh) | 2022-05-17 |
Family
ID=71185131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010088001.1A Expired - Fee Related CN111339552B (zh) | 2020-02-12 | 2020-02-12 | 一种数据库访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111339552B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157501B (zh) * | 2021-12-08 | 2024-01-23 | 北京天融信网络安全技术有限公司 | 一种基于天睿数据库的参数解析方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025722A (zh) * | 2010-10-19 | 2011-04-20 | 深圳市拜特科技股份有限公司 | C/s架构客户机安全获取数据库服务器连接信息的方法 |
CN105009138A (zh) * | 2013-03-11 | 2015-10-28 | 国际商业机器公司 | 通过安全数据库服务器层的会话属性传播 |
CN105100107A (zh) * | 2015-08-17 | 2015-11-25 | 深圳市深信服电子科技有限公司 | 代理客户端账号认证的方法和装置 |
CN110413676A (zh) * | 2019-07-25 | 2019-11-05 | 中国工商银行股份有限公司 | 数据库的访问方法及其装置、电子设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009143631A1 (en) * | 2008-05-30 | 2009-12-03 | Cloakware Corporation | Authenticated database connectivity for unattended applications |
-
2020
- 2020-02-12 CN CN202010088001.1A patent/CN111339552B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025722A (zh) * | 2010-10-19 | 2011-04-20 | 深圳市拜特科技股份有限公司 | C/s架构客户机安全获取数据库服务器连接信息的方法 |
CN105009138A (zh) * | 2013-03-11 | 2015-10-28 | 国际商业机器公司 | 通过安全数据库服务器层的会话属性传播 |
CN105100107A (zh) * | 2015-08-17 | 2015-11-25 | 深圳市深信服电子科技有限公司 | 代理客户端账号认证的方法和装置 |
CN110413676A (zh) * | 2019-07-25 | 2019-11-05 | 中国工商银行股份有限公司 | 数据库的访问方法及其装置、电子设备和介质 |
Non-Patent Citations (2)
Title |
---|
Smart proxy: Generic cloud middleware framework for improving database performance;Mariusz Trzaska 等;《2018 IEEE 3rd International Conference on Cloud Computing and Big Data Analysis (ICCCBDA)》;20180618;全文 * |
基于DCOM的Web与数据库集成***的体系结构;黄琳倩 等;《计算机科学》;20000531;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111339552A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10735472B2 (en) | Container authorization policies for network trust | |
US11544708B2 (en) | User controlled storage and sharing of personal user information on a blockchain | |
WO2020207233A1 (zh) | 一种区块链的权限控制方法及装置 | |
JP2021534512A (ja) | 分散型元帳におけるdagベースのトランザクション処理方法およびシステム | |
CN112035215B (zh) | 节点集群的节点自治方法、***、装置及电子设备 | |
JP2021533448A (ja) | ハイパーレッジャファブリックブロックチェーンにおいてsqlベースのリッチクエリをサポートするためのシステムおよび方法 | |
US20200403809A1 (en) | Service request authentication utilizing permissions associated with digital certificates | |
US10762193B2 (en) | Dynamically generating and injecting trusted root certificates | |
CN112632164B (zh) | 一种实现可信权限访问的通用跨链编程接口方法 | |
US11063923B2 (en) | Authenticator plugin interface | |
EP3694175A1 (en) | System and method for delegating authority through coupled devices | |
US11989284B2 (en) | Service API invoking method and related apparatus | |
CN110278192A (zh) | 外网访问内网的方法、装置、计算机设备及可读存储介质 | |
US12010249B1 (en) | Method and device for zero-trust fusion computation of multi-party data | |
CN111339552B (zh) | 一种数据库访问方法及装置 | |
WO2021203817A1 (zh) | 开放接口的管理方法、电子设备以及存储介质 | |
CN111541717A (zh) | 一种业务处理方法、装置、设备及业务*** | |
US20220385596A1 (en) | Protecting integration between resources of different services using service-generated dependency tags | |
CN112417403B (zh) | 一种基于GitLab API的***自动化认证和授权处理方法 | |
CN116244682A (zh) | 数据库的访问方法、装置、设备以及存储介质 | |
CN116997895A (zh) | 减少执行排序验证区块链模型中的事务中止 | |
CN117762601B (zh) | 一种hydra服务调用方法、***、终端及存储介质 | |
WO2021226805A1 (zh) | 切换方法与装置、云平台和设备 | |
CN116708027B (zh) | 一种多端远程协同通信方法、装置、设备及存储介质 | |
US20230403138A1 (en) | Agentless single sign-on techniques |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220517 |