CN106650501A - 数据库访问控制方法和装置 - Google Patents
数据库访问控制方法和装置 Download PDFInfo
- Publication number
- CN106650501A CN106650501A CN201611256137.9A CN201611256137A CN106650501A CN 106650501 A CN106650501 A CN 106650501A CN 201611256137 A CN201611256137 A CN 201611256137A CN 106650501 A CN106650501 A CN 106650501A
- Authority
- CN
- China
- Prior art keywords
- database
- request
- database manipulation
- perform
- manipulation request
- 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
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
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供的数据库访问控制方法和装置,属于数据库技术领域。所述方法包括:获取应用系统的数据库操作请求,根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行。如果所述数据库操作请求允许执行,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;否则,通知所述应用系统不能执行所述数据库操作请求。在接收数据库操作请求之后,根据预设的判断机制判断数据库操作请求是否允许执行,保护了数据库资源,控制数据库端的数据库操作请求访问,提高了数据库的安全性和访问率。
Description
技术领域
本发明涉及数据库技术领域,具体而言,涉及数据库访问控制方法和装置。
背景技术
数据库作为各类应用系统的核心系统,是绝大多数系统运转不可或缺的部分。不同的应用对数据库的要求不同。部分系统要求绝对可靠的写入和读取,系统需要不停的提升硬件,并朝分布式、集群数据库发展。部分系统并不要求数据能够立即写入,或者立即读取,此部分系统只需要保证数据库系统不能垮掉即可。
现有的系统无法解决数据库资源的保护问题,以及在访问数据库之前预测访问资源需求的情况下控制数据库访问量的问题。
发明内容
有鉴于此,本发明实施例提供了数据库访问控制方法和装置,旨在提供数据库资源的保护和访问控制的方案,以改善上述问题。
本发明实施例提供的一种数据库访问控制方法,所述方法包括:获取应用系统的数据库操作请求,根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行。如果判断所述数据库操作请求允许执行,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;否则,通知所述应用系统不能执行所述数据库操作请求。
本发明实施例提供的一种数据库访问控制装置,所述数据库访问装置包括:请求获取模块,用于获取应用系统的数据库操作请求。判断模块,用于根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行。通知发送模块,用于如果判断所述数据库操作请求允许执行,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;否则,通知所述应用系统不能执行所述数据库操作请求。
本发明实施例提供的数据库访问控制方法中,在应用系统向所述数据库发送数据库操作请求之后,所述数据库访问控制系统根据所接收的数据库操作请求,和预设的判断规则和数据库当前的资源状态判断是否允许所述数据库操作请求执行。如果判断后得出所述当前的资源状态允许所述数据库操作请求执行,则通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;如果判断得出所述数据库操作请求不允许执行,则通知所述应用系统不能执行所述数据库操作请求,则该数据库操作请求就不会被执行。在接收数据库操作请求之后,根据预设的判断机制判断数据库操作请求是否允许执行,保护了数据库资源,控制数据库端的数据库操作请求访问,提高了数据库的安全性和访问率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的数据库访问控制系统的结构示意图;
图2为本发明第一实施例提供的数据库访问控制方法的步骤流程图;
图3为本发明第二实施例提供的数据库访问控制方法的步骤流程图;
图4为本发明第三实施例提供的数据库访问控制方法的步骤流程图;
图5为本发明第四实施例提供的数据库访问控制装置的功能模块图;
图6为本发明第五实施例提供的数据库访问控制装置的功能模块图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,是本发明实施例提供的数据库访问控制方法和装置所应用的数据库访问控制系统100的结构示意图。所述数据库访问控制系统100包括:至少一个应用系统110、数据库访问控制装置120和数据库130。所述应用系统110与所述数据库访问控制装置120连接,以判断所述应用系统发送的数据库操作请求是否允许执行。本发明实施例提供的数据库访问控制方法和装置可以应用于数据库服务器中,即数据库访问控制装置120和数据库130位于同一台服务器中,当然本发明实施例提供的数据库访问装置和数据库130也可以分开部署。所述数据库访问控制装置与所述数据库连接,数据库访问控制装置120将接收的所述应用系统的数据库操作请求的判断结果通知给应用系统110。所述数据库访问控制装置优选设置于所述数据库所在的服务器。本发明实施例中的应用系统110不限于一个。
请参见图2,为本发明第一实施例提供的数据库访问控制方法的步骤流程图,所述数据库访问控制方法应用于图1所示的数据库访问控制装置120。下面将对图2所示的步骤进行具体解释。
步骤S201,获取应用系统的数据库操作请求。
应用系统在需要向数据库执行写入、获取、查询等操作时,需要发送数据库操作请求至所述数据库访问控制装置。所述数据库操作请求可以包括所请求的数据操作种类、所请求的操作对象等。所述请求的数据操作种类可以包括写入请求、获取请求、查询请求等。所请求的操作对象可以包括:欲写入的数据和写入目的结构、欲查询的数据结构等。
一般地,所述数据库访问控制装置以发送sql(Structured Query Language,结构化查询语言)至数据库的方式发起数据库操作请求。所述结构化查询语言,是一种特殊目的的编程语言,是数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入和管理的接口。结构化查询语言语句可以嵌套,具有极大的灵活性和强大的功能。
步骤S202,根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行。
如果所述数据库操作请求允许执行,则执行步骤S203,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行。
如果所述数据库操作请求不允许执行,则执行步骤S204,通知所述应用系统不能执行所述数据库操作请求。
所述数据库访问控制装置内预设有判断规则,所述判断规则用于判断应用系统发送的数据库操作请求是否允许执行。具体地,所述数据库访问控制装置根据数据库当前的资源状态,并利用预设的判断规则,综合判断所述数据库操作请求是否允许执行。所述数据库的资源状态可以包括:数据库IO状态、CPU状态、内存状态、数据库线程执行状态等中的至少一种,所述数据库的一种或多种资源状态关联所述数据库操作请求能否被所述数据库执行。每种资源状态均对应其极限阈值,在达到其极限阈值时,满足预设条件的数据库操作请求将不允许执行。
所述数据库IO状态,是指所述数据库中磁盘IO占时比,即为周期内用于IO操作的时间比率,即IO队列非空的时间比率,所述磁盘IO占时比对应一个极限阈值。磁盘IO占时比暗示了设备的繁忙程度。一般地,如果占时比达到100%,表示该设备已经接近满负荷运行了。在占时比达到80%时,该设备达到高负荷运行状态,某些优先级别为低优先级和中优先级的数据库操作请求可能就允许执行,只能允许高优先级别的数据库操作请求执行。当然,在某些数据库为多磁盘的情况下,即使占时比为100%,由于多磁盘的并发能力,磁盘使用未必达到了满负荷运载。可以根据数据库的具体硬件配置和数据库操作请求的优先级别来设置不同的控制条件,以便适应数据库的具体需求。
在一种实施方式中,所述数据库访问控制装置根据当前的资源状态判断所述数据库操作请求是否允许执行的过程可以为:若所述数据库操作请求为写入请求,写入目标结构已经在执行写入操作,则所述数据库操作请求不允许执行。若所述数据库IO达到80%,则只允许高优先级的数据库操作请求允许执行。若所述数据线程数达到其极限阈值,则所述数据库操作请求不允许执行。具体的限定条件可以针对数据库的保护机制设定,在此不做限定。
若判定所述数据库操作请求允许执行,则通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;例如将写入请求的数据写入到写入目标对象,删除满足条件的数据库条目,查询请求的数据库条目等。若判定所述数据库操作请求不允许执行,则通知所述应用系统不能执行所述数据库操作请求,不触发对所述数据库执行该数据库操作请求。
所述数据库访问控制装置在得出判断结果后,返回判断结果至所述应用系统,以通知所述应用系统是否可以执行其所发送的数据库操作请求。所述判断结果可以仅包括是否允许执行的指示信息,也可以包括判断依据或者当前执行状态等。若判定结果为不允许执行,可以直接拒绝此次数据库操作请求,也可以间隔一段时间后再次判断该数据库操作请求的是否允许执行。
上述本发明实施例提供的数据库访问控制方法,在接收到应用系统的数据库操作请求时,根据装置内预设的判断规则,和数据库当前的资源状态,判断所述应用系统的数据库操作请求是否允许执行,保护了数据库资源,控制数据库端的数据库操作请求访问,提高了数据库的安全性和访问率。
请参见图3,为本发明第二实施例提供的数据库访问控制方法的步骤流程图。在上述实施例的基础上,步骤S202所述的,根据预设的判断规则和数据库当前的资源状态判读所述数据库操作请求是否允许执行的具体实施过程,还可以有其它可能实施方式。下面将对图3所示的步骤进行具体解释。
步骤S301,获取所述应用系统的数据库操作请求。
应用系统在需要向数据库执行写入、删除、查询、修改等操作时,需要发送数据库操作请求至所述数据库访问控制装置。如果是写入操作,所述数据库操作请求包括所请求的数据操作种类、所请求的操作对象以及写入的数据库条目数等。如果所述请求的数据操作种类为删除操作或者修改操作。所请求的操作对象可以包括:欲写入的数据和写入目的结构、欲查询的数据结构等。
步骤S302,判断所述数据库操作请求是否满足预设条件。
在所述资源状态满足预设条件时,执行步骤S303,判定所述数据库操作请求不允许执行。
在所述资源状态不满足预设条件时,执行步骤S304。
所述数据库的资源状态可以包括:数据库IO状态、CPU状态、内存状态、数据库线程执行状态等中的至少一种,用于判定所述数据库操作请求不允许执行的预设条件可以包括下述条件中的至少一种。
其一,所述资源状态为磁盘IO占时比,所述磁盘IO占时比达到极限阈值,且所述数据库操作请求的优先级不是预设的高优先级。
数据库操作请求为写入请求时,磁盘IO占时比较高。在接收到所述数据库操作请求时,判断所述磁盘IO占时比达是否到其极限阈值(例如80%),若达到极限阈值,此时低优先级和中优先级的数据库操作请求不允许执行,只允许执行高优先级的数据库操作请求。判断当前的数据库操作请求的优先级是不是高优先级,若是则判定所述数据库操作请求允许执行,或者是再根据其它的数据库资源状态判断该数据库操作请求是否允许执行。若当前的数据库操作请求的优先级不是高优先级,则判定所述数据库操作请求不允许执行。
其二,所述资源状态包括数据库内存,所述数据库内存达到其极限阈值,且所述数据库操作请求为查询请求。
数据库操作请求为普通查询请求时,内存消耗较高。在接收到所述数据库操作请求时,判断所述数据库内存是否达到极限阈值(例如数据库可使用内存的90%),若达到极限阈值,则判断此时的数据库操作请求是否为查询请求。若所述数据库操作请求不是查询请求,则可以判定所述数据库操作请求允许执行,或者是再根据其它的数据库资源状态判断该数据库操作请求是否允许执行。若当前的数据库操作请求为查询请求,则判定所述数据库操作请求不允许执行。
其三,所述资源状态包括数据线程数,所述数据线程数达到其极限阈值。
数据库资源状态还可以为数据线程数,即为该数据库当前已经在执行的线程的数量,数据库的线程数对应一个极限阈值。在接收到所述数据库操作请求时,判断所述数据库当前的数据线程数是否达到极限阈值。若所述数据线程数未达到极限阈值,则判定所述数据库操作请求允许执行,或者是再根据其它的数据库资源状态判断该数据库操作请求是否允许执行。若所述数据线程数达到其极限阈值,则可以直接判定所述数据库操作请求不允许执行。
其四,所述数据库操作请求为排他写入,获取所述排他写入对应的写入区域,且所述写入区域为正在写入状态。
应用系统发送的数据库操作请求可以为写入请求,所述写入请求包括排他写入和非排他写入。所述排他写入,即为所述排他写入请求对应的写入区域不能同时执行其他的写入请求。在接收到所述数据库操作请求时,判断所述数据库操作请求是否为排他写入。若所述数据库操作请求是非排他写入,则可以判定所述数据库操作请求允许执行,或者是再根据其它的数据库资源状态判断该数据库操作请求是否允许执行。若所述数据库为排他写入,则判断该排他写入请求对应的写入区域是否为正在写入状态。若所述写入区域不是正在写入状态,则可以判定该数据库操作请求允许执行,或者是再根据其它的数据库资源状态判断所述数据库操作请求是否允许执行。若所述写入区域是正在写入状态,则可以判定该数据库操作请求不允许执行。
步骤S304,获取所述数据库操作请求的请求语句。
在所述数据资源状态不满足上述实施例提供的预设条件时,初步判定所述数据库操作请求可能允许执行,还需要进一步的判断过程。获取所述数据库操作请求的请求语句。步骤S305,根据所述数据库操作请求的请求语句和所述请求语句的平均资源消耗计算所述数据库操作请求的预测资源消耗。
所述数据库访问控制装置在执行历史数据库操作请求时,会记录数据库操作请求中的请求语句的平均资源消耗,以用于后续的数据库操作请求的预测资源消耗。依据上述步骤获取数据库操作请求中的条目信息后,根据所述数据库访问控制装置内记录的请求语句的平均资源消耗的历史数据,计算所述数据库操作请求中的请求语句所需要的资源消耗,进而得出所述数据库操作请求的预测资源消耗。
步骤S306,判断所述数据库当前的资源状态是否满足所述数据库操作请求的预测资源消耗。
如果所述资源状态满足所述数据库操作请求的预测资源消耗,则执行步骤S307,判定所述数据库操作请求允许执行。
如果所述资源状态不满足所述数据库操作请求的预测资源消耗,则执行步骤S303,判定所述数据库操作请求不允许执行。
依据上述步骤计算所述数据库操作请求的预测资源消耗,根据所述数据库当前的系统资源消耗的基线值,判断所述数据库当前的资源状态是否满足所述数据库操作请求的预测资源消耗。如果所述数据库当前的资源状态满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求允许执行。如果所述数据库当前的资源状态不满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求不允许执行。
上述本实施例提供的多种用于判定所述数据库操作请求不允许执行的预设条件,可以根据数据库所接收的数据库操作请求的种类选择其中一种方式作为判断依据,也可以将多种判断方式综合判断数据库操作请求是否允许执行。在进行数据库操作请求的执行状态判断时,增设根据数据库当前的资源状态和数据库操作请求的预测资源是否匹配的判断过程,以进一步判断数据库的资源状态是否允许执行所接收的数据库操作请求,进一步提高了数据库的资源保护和访问控制。
请参见图4,为本发明第三实施例提供的数据库访问控制方法的步骤流程图。为了计算所接收的数据库操作请求的预测资源消耗,以及进一步保证数据库的资源满足数据库操作请求的需求,本发明实施例增设了根据数据库操作请求执行后的资源消耗总量计算数据库操作请求中的请求语句的平均资源消耗的过程,以用于后续数据库操作请求的预测资源消耗的计算。下面将结合图4,对上述资源消耗的计算过程进行具体解释。
步骤S401,获取所述应用系统返回的所述数据库操作请求及执行完成的指示信息。
数据库访问控制装置在判定应用系统发送的数据库操作请求允许执行时,应用系统将所述数据库操作请求发送到数据库进行执行,即由数据库执行应用系统发起的sql语句。应用系统的数据库操作请求执行完成后,返回数据库操作请求及执行完成的指示信息至所述数据库访问控制装置。所述数据库操作请求完成的指示信息可以包括:数据库操作请求执行的起止时间、数据库操作请求中的请求语句种类、数据库操作请求的条目信息等,所述数据库操作请求的条目信息包括操作数据库的条目数。
步骤S402,根据所述数据库操作请求执行前的资源状态和所述数据库操作请求执行后的资源状态获取所述数据库操作请求对应的资源消耗总量。
为监控所述数据库的系统资源消耗量,优选在该数据库无访问时,建立系统资源消耗的基线值。数据库访问控制装置在数据库系统启动时,可控制所述访问暂时不执行,先检测数据库的系统资源消耗的基线值,即为检测一段时间内数据库IO、内存、CPU消耗值、数据线程数等参数。记录基线值后,开始放行数据库操作请求。
在执行所述数据库操作请求之前,记录该数据库的系统资源消耗的基线值。执行完所述数据库操作请求之后,再次记录所述数据库当前的系统资源消耗的基线值。根据所述数据库操作请求执行前的资源状态,以及所述数据库操作请求执行后的系统资源消耗的基线值,获取所述数据库操作请求对应的资源消耗总量。
步骤S403,根据所述资源消耗总量和所述数据库操作请求的条目信息,计算所述数据库操作请求中的请求语句执行每个条目的平均资源消耗量。
所述数据库访问控制装置根据所述资源消耗总量和所述数据库操作请求的条目信息,计算所述数据库操作请求中的请求语句执行每个条目的平均资源消耗量,用于计算包括所述请求语句的下一次数据库操作请求的预测资源消耗。所述数据库访问控制装置在完成执行完的数据库操作请求中的请求语句的平均资源消耗量后,将数据库操作请求中的每种请求语句对应的平均资源消耗量存储。在接收到下一次的数据库操作请求时,根据该数据库操作请求中的请求语句的种类,以及其中的请求语句的平均资源消耗的历史记录,预测包含该请求语句的数据库操作请求可能需求的资源消耗。可以根据所述数据库当前的系统资源,以及所接收的数据库操作请求可能需求的资源消耗,判断所述数据库当前的系统资源是否满足所述数据库操作请求可能需求的资源消耗,以判断所述数据库操作请求是否允许执行。
请参见图5,为本发明第四实施例提供的数据库访问控制装置500的功能模块图。本发明实施例提供的所述数据库访问控制装置500与上述实施例提供的数据库访问控制装置120可以为实现数据库访问控制功能的同一装置或者不同装置。本实施例提供的所述数据库访问控制装置500包括:请求获取模块510、判断模块520和通知发送模块530。
所述请求获取模块510,用于获取应用系统的数据库操作请求。
所述判断模块520,用于根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行。
所述通知发送模块530,用于如果判断所述数据库操作请求允许执行,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;否则,通知所述应用系统不能执行所述数据库操作请求。
在上述实施例的基础上,所述判断模块520用于:
在所述资源状态满足预设条件时,判定所述数据库操作请求不允许执行。
在所述资源状态不满足预设条件时,判定所述数据库操作请求允许执行。
在上述实施例的基础上,所述判断模块520用于判定数据库操作请求不允许执行的预设条件包括以下条件中的至少一个:
所述资源状态包括磁盘IO占时比,所述磁盘IO占时比达到其极限阈值,且所述数据库操作请求的优先级不是预设的高优先级;
所述资源状态包括数据库内存,所述数据库内存达到其极限阈值,且所述数据库操作请求为查询请求;
所述资源状态包括数据线程数,所述数据线程数达到其极限阈值;以及
所述数据库操作请求为排他写入,获取所述排他写入对应的写入区域,且所述写入区域为正在写入状态。
请参见图6,为本发明第五实施例提供的数据库访问控制装置。在上述实施例的基础上,本发明实施例提供的数据库访问控制装置600还可以包括:指示信息接收模块610、资源消耗总量获取模块620和平均资源消耗量计算模块630。
指示信息接收模块610,用于获取所述应用系统返回的所述数据库操作请求及执行完成的指示信息,其中,所述指示信息包括所述数据库操作请求的条目信息;
资源消耗总量获取模块620,用于根据所述数据库操作请求执行前的资源状态和所述数据库操作请求执行后的资源状态获取所述数据库操作请求对应的资源消耗总量;
平均资源消耗量计算模块630,用于根据所述资源消耗总量和所述数据库操作请求的条目信息,计算所述数据库操作请求中的请求语句执行每个条目的平均资源消耗量,用于计算包括所述请求语句的下一次数据库操作请求的预测资源消耗。
在上述实施例的基础上,所述判断模块520还用于:
在所述资源状态不满足预设条件时,获取所述数据库操作请求的请求语句种类,或者还包括所述数据库操作请求中的条目信息,即操作数据库的条目数;
根据所述数据库操作请求的语句种类和请求语句的平均资源消耗计算所述数据库操作请求的预测资源消耗;或者根据所述数据库操作请求的语句种类和请求语句执行每个条目的平均资源消耗计算所述数据库操作请求的预测资源消耗;
判断所述数据库当前的资源状态是否满足所述数据库操作请求的预测资源消耗;
如果所述资源状态满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求允许执行;
如果所述资源状态不满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求不允许执行。
上述本发明实施例提供的数据库访问控制装置,在接收到应用系统的数据库操作请求时,根据装置内预设的判断规则,和数据库当前的资源状态,判断所述应用系统的数据库操作请求是否允许执行,保护了数据库资源,控制数据库端的数据库操作请求访问,提高了数据库的安全性和访问率。本发明实施例提供的数据库访问控制装置的具体实施过程请参见上述方法实施例,在此不再一一赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据库访问控制方法,其特征在于,所述方法包括:
获取应用系统的数据库操作请求;
根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行;
如果判定所述数据库操作请求允许执行,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;否则,通知所述应用系统不能执行所述数据库操作请求。
2.根据权利要求1所述的方法,其特征在于,所述通知所述应用系统发送所述数据库操作请求至所述数据库进行执行的步骤之后,所述方法还包括:
获取所述应用系统返回的所述数据库操作请求及执行完成的指示信息,其中,所述执行完成的指示信息包括所述数据库操作请求的条目信息;
根据所述数据库操作请求执行前的资源状态和所述数据库操作请求执行后的资源状态获取所述数据库操作请求对应的资源消耗总量;
根据所述资源消耗总量和所述数据库操作请求的条目信息,计算所述数据库操作请求中的请求语句执行每个条目的平均资源消耗量,用于计算包括所述请求语句的下一次数据库操作请求的预测资源消耗。
3.根据权利要求1所述的方法,其特征在于,根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行的步骤包括:
在所述资源状态满足预设条件时,判定所述数据库操作请求不允许执行;
在所述资源状态不满足预设条件时,判定所述数据库操作请求允许执行。
4.根据权利要求3所述的方法,其特征在于,所述预设条件包括以下条件中的至少一个:
所述资源状态包括磁盘IO占时比,所述磁盘IO占时比达到其极限阈值,且所述数据库操作请求的优先级不是预设的高优先级;
所述资源状态包括数据库内存,所述数据库内存达到其极限阈值,且所述数据库操作请求为查询请求;
所述资源状态包括数据线程数,所述数据线程数达到其极限阈值;以及所述数据库操作请求为排他写入,获取所述排他写入对应的写入区域,且所述写入区域为正在写入状态。
5.根据权利要求3所述的方法,其特征在于,在所述资源状态不满足预设条件时,判定所述数据库操作请求允许执行的步骤包括:
在所述资源状态不满足预设条件时,获取所述数据库操作请求,其中,所述数据库操作请求包括所述数据库操作请求的请求语句;
根据所述数据库操作请求的请求语句种类和执行所述请求语句的平均资源消耗计算所述数据库操作请求的预测资源消耗;
判断所述数据库当前的资源状态是否满足所述数据库操作请求的预测资源消耗;
如果所述资源状态满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求允许执行;
如果所述资源状态不满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求不允许执行。
6.一种数据库访问控制装置,其特征在于,所述数据库访问装置包括:
请求获取模块,用于获取应用系统的数据库操作请求;
判断模块,用于根据预设的判断规则和数据库当前的资源状态判断所述数据库操作请求是否允许执行;
通知发送模块,用于如果判断所述数据库操作请求允许执行,通知所述应用系统发送所述数据库操作请求至所述数据库进行执行;否则,通知所述应用系统不能执行所述数据库操作请求。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
指示信息接收模块,用于获取所述应用系统返回的所述数据库操作请求及执行完成的指示信息,其中,所述指示信息包括所述数据库操作请求的条目信息;
资源消耗总量获取模块,用于根据所述数据库操作请求执行前的资源状态和所述数据库操作请求执行后的资源状态获取所述数据库操作请求对应的资源消耗总量;
平均资源消耗量计算模块,用于根据所述资源消耗总量和所述数据库操作请求的条目信息,计算所述数据库操作请求中的请求语句执行每个条目的平均资源消耗量,用于计算包括所述请求语句的下一次数据库操作请求的预测资源消耗。
8.根据权利要求6所述的装置,其特征在于,所述判断模块用于:
在所述资源状态满足预设条件时,判定所述数据库操作请求不允许执行;
在所述资源状态不满足预设条件时,判定所述数据库操作请求允许执行。
9.根据权利要求8所述的装置,其特征在于,所述判断模块用于:所述预设条件包括以下条件中的至少一个:
所述资源状态包括磁盘IO占时比,所述磁盘IO占时比达到其极限阈值,且所述数据库操作请求的优先级不是预设的高优先级;
所述资源状态包括数据库内存,所述数据库内存达到其极限阈值,且所述数据库操作请求为查询请求;
所述资源状态包括数据线程数,所述数据线程数达到其极限阈值;以及
所述数据库操作请求为排他写入,获取所述排他写入对应的写入区域,且所述写入区域为正在写入状态。
10.根据权利要求8所述的装置,其特征在于,所述判断模块用于:
在所述资源状态不满足预设条件时,获取所述数据库操作请求,其中,所述数据库操作请求包括所述数据库操作请求的请求语句;
根据所述数据库操作请求的请求语句种类和执行所述请求语句的平均资源消耗计算所述数据库操作请求的预测资源消耗;
判断所述数据库当前的资源状态是否满足所述数据库操作请求的预测资源消耗;
如果所述资源状态满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求允许执行;
如果所述资源状态不满足所述数据库操作请求的预测资源消耗,判定所述数据库操作请求不允许执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611256137.9A CN106650501B (zh) | 2016-12-30 | 2016-12-30 | 数据库访问控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611256137.9A CN106650501B (zh) | 2016-12-30 | 2016-12-30 | 数据库访问控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106650501A true CN106650501A (zh) | 2017-05-10 |
CN106650501B CN106650501B (zh) | 2019-12-06 |
Family
ID=58838015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611256137.9A Active CN106650501B (zh) | 2016-12-30 | 2016-12-30 | 数据库访问控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106650501B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104480A (zh) * | 2018-08-06 | 2018-12-28 | 东软集团股份有限公司 | 一种网络请求的处理方法及装置 |
CN109918399A (zh) * | 2018-08-13 | 2019-06-21 | 新华三大数据技术有限公司 | 数据写入方法及装置 |
CN110231913A (zh) * | 2018-03-05 | 2019-09-13 | 中兴通讯股份有限公司 | 数据处理方法、装置及设备、计算机可读存储介质 |
CN110334545A (zh) * | 2019-06-28 | 2019-10-15 | 北京淇瑀信息科技有限公司 | 一种基于sql的权限控制方法、装置和电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243655A (zh) * | 2011-06-16 | 2011-11-16 | 苏州阔地网络科技有限公司 | 一种数据库的连接管理方法及装置 |
CN102915374A (zh) * | 2012-11-07 | 2013-02-06 | 北京搜狐新媒体信息技术有限公司 | 一种控制数据库资源访问的方法、装置及系统 |
CN103761260A (zh) * | 2013-12-31 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 处理数据库互斥锁的方法和装置以及分布式系统 |
CN104239365A (zh) * | 2013-06-24 | 2014-12-24 | 北京新媒传信科技有限公司 | 一种获取数据库连接池中连接的方法和数据库连接池 |
CN105138693A (zh) * | 2015-09-18 | 2015-12-09 | 联动优势科技有限公司 | 一种访问数据库的方法及装置 |
CN105281981A (zh) * | 2015-11-04 | 2016-01-27 | 北京百度网讯科技有限公司 | 网络服务的数据流量监控方法和装置 |
CN105468619A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 用于数据库连接池的资源分配方法和装置 |
CN106021080A (zh) * | 2016-05-10 | 2016-10-12 | 国家电网公司 | 应用中间件数据库连接池资源消耗趋势智能预测方法 |
-
2016
- 2016-12-30 CN CN201611256137.9A patent/CN106650501B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243655A (zh) * | 2011-06-16 | 2011-11-16 | 苏州阔地网络科技有限公司 | 一种数据库的连接管理方法及装置 |
CN102915374A (zh) * | 2012-11-07 | 2013-02-06 | 北京搜狐新媒体信息技术有限公司 | 一种控制数据库资源访问的方法、装置及系统 |
CN104239365A (zh) * | 2013-06-24 | 2014-12-24 | 北京新媒传信科技有限公司 | 一种获取数据库连接池中连接的方法和数据库连接池 |
CN103761260A (zh) * | 2013-12-31 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 处理数据库互斥锁的方法和装置以及分布式系统 |
CN105468619A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 用于数据库连接池的资源分配方法和装置 |
CN105138693A (zh) * | 2015-09-18 | 2015-12-09 | 联动优势科技有限公司 | 一种访问数据库的方法及装置 |
CN105281981A (zh) * | 2015-11-04 | 2016-01-27 | 北京百度网讯科技有限公司 | 网络服务的数据流量监控方法和装置 |
CN106021080A (zh) * | 2016-05-10 | 2016-10-12 | 国家电网公司 | 应用中间件数据库连接池资源消耗趋势智能预测方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231913A (zh) * | 2018-03-05 | 2019-09-13 | 中兴通讯股份有限公司 | 数据处理方法、装置及设备、计算机可读存储介质 |
CN109104480A (zh) * | 2018-08-06 | 2018-12-28 | 东软集团股份有限公司 | 一种网络请求的处理方法及装置 |
CN109104480B (zh) * | 2018-08-06 | 2021-08-13 | 东软集团股份有限公司 | 一种网络请求的处理方法及装置 |
CN109918399A (zh) * | 2018-08-13 | 2019-06-21 | 新华三大数据技术有限公司 | 数据写入方法及装置 |
CN110334545A (zh) * | 2019-06-28 | 2019-10-15 | 北京淇瑀信息科技有限公司 | 一种基于sql的权限控制方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106650501B (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978335B (zh) | 数据访问控制方法和装置 | |
US20210224114A1 (en) | Capacity Analysis Using Closed-System Modules | |
Economou et al. | Equilibrium customer strategies and social–profit maximization in the single‐server constant retrial queue | |
CN106650501A (zh) | 数据库访问控制方法和装置 | |
CN108090225A (zh) | 数据库实例的运行方法、装置、系统及计算机可读存储介质 | |
CN104407926B (zh) | 一种云计算资源的调度方法 | |
US9229993B2 (en) | Processing hybrid co-tenancy in a multi-database cloud | |
CN108112038B (zh) | 一种控制访问流量的方法及装置 | |
CN103403699A (zh) | 估算流数据库应用中的负荷削减数据 | |
CN107589915A (zh) | 一种分布式存储系统的容量信息监控方法、装置及设备 | |
CN107968810A (zh) | 一种服务器集群的资源调度方法、装置和系统 | |
CN106484330A (zh) | 一种混合磁盘分层数据优化方法和装置 | |
CN105683941A (zh) | 调节企业数据仓库资源使用 | |
CN102629220A (zh) | 一种动态任务分配管理方法 | |
CA2912691C (en) | Input-output prioritization for database workload | |
CN109086141A (zh) | 内存管理方法和装置以及计算机可读存储介质 | |
CN105512188A (zh) | 数据连接方法和数据连接系统 | |
CN110266555A (zh) | 用于分析网站服务请求的方法 | |
CN110084476A (zh) | 案件调整方法、装置、计算机设备和存储介质 | |
CN117744053A (zh) | 一种基于重叠聚类的用户语义角色挖掘方法及装置 | |
CN108763517A (zh) | 一种删除元数据的方法以及相关设备 | |
US20230325242A1 (en) | Fast shutdown of large scale-up processes | |
Mukherjee | Non-replicated dynamic fragment allocation in distributed database systems | |
CN114969189A (zh) | 一种数据库连接池中连接确定方法及装置 | |
CN107067222A (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 |