CN111767572A - 一种安全访问数据库的方法及装置 - Google Patents
一种安全访问数据库的方法及装置 Download PDFInfo
- Publication number
- CN111767572A CN111767572A CN202010600959.4A CN202010600959A CN111767572A CN 111767572 A CN111767572 A CN 111767572A CN 202010600959 A CN202010600959 A CN 202010600959A CN 111767572 A CN111767572 A CN 111767572A
- Authority
- CN
- China
- Prior art keywords
- user
- attribute information
- sql
- data
- rule
- 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.)
- Pending
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/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
- G06F21/6227—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 where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种安全访问数据库的方法及装置,所述方法包括:获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。本申请的一些实施例可以基于更细粒度的信息与权限规则进行匹配,进而提升对数据库的安全访问控制。
Description
技术领域
本申请涉及数据库访问领域,具体而言本申请实施例涉及一种安全访问数据库的方法及装置。
背景技术
随着计算机技术的飞速发展,数据库的应用十分广泛,深入到各个领域,但随之而来产生了数据的安全问题。如何保证数据库自身的安全,已经成为现代数据库系统的主要评测指标之一。在这种背景下需要一款产品或者技术,管理和限制用户的操作权限和相应资源,以非法可知可控为目标,确保数据库数据资源的安全性和可靠性。
发明内容
本申请实施例的目的在于提供一种安全访问数据库的方法及装置,本申请的一些实施例可以进行对多种资源的访问控制,避免非法人员绕行访问数据库资源,在一些实施例中,可以实现安全访问控制设备的灵活部署(例如,旁路或者串联);本申请的一些实施例还采用了对结构化查询语言SQL(Structured Query Language)语句深度分析技术,可以对SQL的所有信息进行提取,提高了规则匹配时的准确度。
第一方面,本申请实施例提供一种安全访问数据库的方法,所述方法包括:获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。
本申请的一些实施例采用词法语法分析SQL语句以切分出更细粒度的信息,基于更细粒度的信息与权限规则匹配,以提升对数据库的安全访问控制。
在一些实施例中,所述采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,包括:捕获所述SQL语句的各字段;从所述各字段中提取有效信息,其中,所述有效信息是根据为各所述操作类型制定的成分模板确定的。
本申请的一些实施例对SQL语句进行语法词法分析以获取其中的与数据库安全操作相关的信息,相比于现有技术的基于匹配算法来提取SQL中的与数据库安全操作相关的信息,语法分析提取的信息量更多(例如可以提取多级嵌套的信息),因此更加有利于细粒度数据库的访问控制。
在一些实施例中,所述根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限,包括:根据匹配规则和所述用户属性的匹配结果确认用户校验合格。
本申请的一些实施例仅根据用户属性信息进行用户身份认证,可以仅对用户属性(例如,访问用户的IP地址、端口、实例名、访问时间)的所有操作进行限制。
在一些实施例中,所述根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限,包括:根据匹配规则与所述用户属性的匹配结果确认用户校验合格;根据所述匹配规则和所述操作类型的匹配结果确定合格用户的操作请求被允许。
本申请的一些实施例,在用户身份认证合格后还根据操作类型来进一步确定访问用户是否具有所请求操作类型的权限,可以在用户属性校验基础上,对用户操作进行检测和控制。
在一些实施例中,所述根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限,包括:根据匹配规则和所述用户属性的匹配结果确认用户校验合格;根据所述匹配规则和所述操作类型的匹配结果确定合格用户的操作请求被允许;根据所述匹配规则与所述操作对象的匹配结果确定所述合格用户的被允许的操作的操作对象合规。
本申请的一些实施例还可以在确认了属于合格用户的合格操作时,进一步确定操作对应的操作对象是否合规。也就是说通过这些实施例,可以在用户属性校验基础上,对用户操作进行检测和控制,也可以在对操作进行检测和控制的基础上对操作对象进行检测和控制。
在一些实施例中,所述操作对象包括:表、视图或者字段。
本申请的一些实施例通过对SQL语句的语法分析可以切分出字段等更细粒度操作对象信息,因此与现有技术相比可以增加对视图和字段这种更细粒度的操作对象进行权限访问控制。
在一些实施例中,所述语法分析基于YACC/LEX策略。
第二方面,本申请的实施例还提供一种安全访问数据库的装置,所述装置包括:获取模块,被配置为获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;SQL解析模块,被配置为采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;安全确认模块,被配置为根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。
第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现上述第一方面所述的方法。
第四方面,本申请实施例提供一种安全访问数据库的设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现上述第一方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的用户安全访问数据库的系统示意图;
图2为本申请实施例提供的安全访问数据库的方法的流程图;
图3为本申请实施例提供的安全访问数据库的方法的示意图;
图4为本申请实施例提供的安全访问数据库的装置的组成框图;
图5为本申请实施例提供的安全访问数据库的设备的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面结合相关技术简要阐述相关技术的实施例存在的问题。
在实际应用方面,相关技术可以包括如下处理步骤:从请求中获取用户属性,如:用户名、IP等;检查用户属性的合法性,如果合法则进入下一步处理,如果不合法则拒绝其访问;从请求SQL中提取其所要访问的数据库资源信息,如表名,数据库名,表空间等;以预先制定的匹配规则进行匹配,如果命中则阻止其访问数据库资源;否则允许其对数据库资源的访问。结合相关技术的步骤可以看出,相关技术至少存在以下三个方面的问题。第一方面,相关技术对数据库资源的细粒度(仅提取数据库的部分资源信息)不够,对数据库资源的细粒度的控制,无法做到对除了数据表以外的资源进行控制。第二方面,相关技术导致的安全控制设备的部署单一,基本上都是通过代理的方式实现对访问数据库的控制,在高并发情况下存在影响正常业务的可能。第三方面,相关技术的规则匹配不准确,这是由于现有技术对SQL语句的相关元素的提取基于正则表达式,而正则表达式能够提取的有效信息非常少,也就是说随着SQL语句复杂度的增加由于现有的基于正则对SQL语句分析所提取的信息有限,进一步导致匹配不到限制信息的风险,匹配不准确,并最终引起对数据库的访问风险。
本申请的一些实施例采用YACC/LEX技术对SQL语句进行语法词法分析,即采用语法分析算法对SQL语句进行结构化拆分,以获取SQL语句携带的更多的更细节的有效信息(例如,操作类型信息,资源信息包括的字段信息)。本申请的一些实施例提供的权限规则是针对数据库资源的限制制定的规则,这些权限规则能够对用户属性,操作类型(例如,DML、DDL、DCL)和操作对象进行限制控制,以进一步增强被访问的数据库的安全性。
请参看图1,图1为本申请的一些实施例提供的用户安全访问数据库的系统示意图,该系统包括:数据库300,用于接收访问用户输入的SQL语句的计算机终端200,以及用于获取访问用户的用户属性并解析SQL语句以控制访问用户对数据库300安全访问的智能终端100。
数据库300为按照一定的数据结构存储和管理数据的数据集合,例如,MySQL、Oracle等。本申请实施例并不限定数据库的具体类型。
需要说明的是,在本申请的一些实施例中,智能终端100可以与计算机终端200以及数据库串联连接,如图中的实线示出的链路。在本申请的另一些实施例中,智能终端100可以与计算机终端200以及数据库并联连接,如图中的虚线示出的链路。
下面结合图2和图3示例性阐述在智能终端100上执行的安全访问数据库的方法。
如图2所示,本申请的一些实施例提供一种安全访问数据库的方法,所述方法包括:S101获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;S102,采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作以或据控制操作;S103,根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。本申请的一些实施例采用词法语法分析SQL语句以切分出更细粒度的信息,基于更细粒度的信息和权限规则的匹配可以提升对数据库的安全访问控制。
为了提升从SQL语句中获取更多的信息以用于和更多的权限规则进行匹配,在一些实施例中,S101包括:捕获所述SQL语句的各字段;从所述各字段中提取有效信息,其中,所述有效信息是根据为各所述操作类型制定的成分模板确定的。本申请的一些实施例对SQL语句进行语法词法分析以获取其中的与数据库安全操作相关的信息,相比于现有技术的基于匹配算法来提取SQL中的与数据库安全操作相关的信息,语法分析提取的信息量更多(例如可以提取多级嵌套的信息),因此更加有利于细粒度数据库的访问控制。
下面结合几个示例示例性阐述S103的步骤。
为了仅对用户属性(例如,访问用户的IP地址、端口、实例名、访问时间)的所有操作进行限制,在一些实施例中,S103包括:根据匹配规则和所述用户属性的匹配结果确认用户校验合格。
为了可以在用户属性校验基础上,对用户操作进行检测和控制,在一些实施例中,S103包括:根据匹配规则与所述用户属性的匹配结果确认用户校验合格;根据所述匹配规则和所述操作类型的匹配结果确定合格用户的操作请求被允许。
为了可以在用户属性校验基础上,对用户操作进行检测和控制,也可以在对操作进行检测和控制的基础上对操作对象进行检测和控制,在一些实施例中,S103包括:根据所述匹配规则和所述用户属性的匹配结果确认用户校验合格;根据所述匹配规则和所述操作类型的匹配结果确定合格用户的操作请求被允许;根据所述匹配规则与所述操作对象的匹配结果确定所述合格用户的被允许的操作的操作对象合规。
需要说明的是,本申请的一些实施例可以采用语法解析器YACC/词法分析器LEX策略对SQL语句进行语法分析来获取更多的操作对象信息。例如,本申请一些实施例的操作对象包括:表、视图或者字段。
也就是说,本申请的一些实施例适用于基于用户属性和可访问规则的针对数据库访问资源的细粒度控制(即一种数据库检测和控制机制),本申请的一些实施例可以结合用户属性(由用户连接信息的IP和端口,以及用户名、实例名信息组成)和SQL操作,检测和控制访问用户的访问权限。例如,在本申请的一些实施例中通过对SQL语句进行语法和词法分析深度挖掘SQL语句的结构信息,为数据库访问控制提供有效坚实的源信息基础;之后再配合权限规则,限制权限使用,进行数据资源的管理。作为一些示例,本申请的一些实施例包括一条权限规则,该条权限规则的内容为“禁止user1用户查看table1表的内容”,通过获取的用户名信息和从SQL语句中提取的表名信息信息与该权限规则匹配,如果命中这个规则,则阻止访问用户user1查看table1的行为;本申请的另一些实施例包括另一条权限规则,该权限规则的内容为“禁止user1用户使用IP,在23:30:00访问数据库,执行权限修改命令”,通过获取的访问用户的IP地址、访问时间和从SQL语句中提取的操作类型和操作对象与该权限规则匹配,如果命中规则,则阻止其执行权限修改命令的行为。
下面结合图3示例性说明本申请一些实施例的安全访问数据库的方法。
如图3所示,图示描述了SQL权限检测与控制的流程。
第一阶段:接收访问用户输入的访问数据库的请求并获取用户属性信息。对用户的属性进行校验,校验通过后通过数据库访问模块中的协议解析单元分析出SQL语句,作为SQL语法分析模块的输入。
第二阶段:SQL语法分析模块对输入的SQL语句进行分析,即对SQL语句进行结构性拆分,并结合上下文信息,收集与用户和用户输入的SQL语句相关的信息。这些相关的信息可以包括用户名、SQL操作、表、视图、schema、表空间等信息。拆分SQL语句即基于语法词法分析提取SQL语句的多个字段,从多个字段中依次提取用户名属性、操作类型、表名和视图名。
第三阶段:根据第二阶段得到的拆分信息与预先制定的权限规则进行匹配,确定对访问用户的限制性操作。本申请的一些实施例的匹配过程如下:
首先,匹配根据上下文信息获取的用户属性(IP、端口、实例名、访问时间)和权限规则(即用户属性限制匹配),如果该用户属性校验不合格,则执行规则设置的执行动作,告警或者阻断其会话;如果校验通过,则放行,进入后面的匹配规则。
其次,匹配拆分SQL语句得到的当前的操作类型与权限规则(即操作类型限制匹配),如果当前用户下的当前操作匹配命中,则进入下一步的规则匹配,否则放行该会话。
最后,匹配拆分SQL语句得到的与操作类型相关的操作对象(即表明限制匹配或者视图名限制匹配),例如,操作对象包括表、视图、schema、表空间等,通过对操作对象进行规则匹配,如果命中,则执行规则相应动作,相应的动作可以包括告警或者阻断其会话(图3的动作中未示出这个动作);如果未命中,则放行(如图3动作一列的放行)。
需要说明的是,本申请一些实施例提供了更加灵活的规则匹配机制。既可以仅对用户属性(IP、端口、实例名、访问时间)的所有操作进行限制,也可以在用户属性校验基础上,对用户操作进行检测和控制,也可以在此基础上对操作对象的检测和控制。例如:本申请一些实施例有第一权限规则,即“user1用户不能使用192.168.2.2地址在02:00:00时间点,进行任何数据库操作,否则阻断其访问”,当用户user1使用192.168.2.2地址在02:00:00时间点,对数据库进行了任何操作,则会命中规则,进而会执行阻断会话动作,阻止其访问数据库的任何资源;本申请的一些实施例有第二权限规则,即“user2用户不能使用192.168.2.2地址在00:00:00时间点,进行select操作,否则告警”,当用户user2使用192.168.2.2地址在00:00:00时间点,使用select操作,查询了任何一张数据表对象,则会命中规则,进而执行告警动作;本申请的一些实施例有第三权限规则,即“user3用户不能使用192.168.2.2,在05:00:00时间点,使用select操作,查询user_password表,否则阻断其访问”,当用户user3使用192.168.2.2地址,在05:00:00时间点,使用select操作,查询了user_password表,则会命中规则,进而执行阻断会话动作,阻止其访问数据库资源。
本申请的一些实施例还提供了对SQL语句采用词法语法分析进行深度分析,例如使用YACC/LEX技术对SQL语句进行深度的结构化拆分,对于SQL语句的所有字段进行捕获,并获取其有效信息。例如,假设存在一条SQL语句:select name from(select id,name,score from table2),采用本申请实施例提供的语法分析对这个SQL语句拆分至少可以得到两级拆分结果。其中,一级拆分结果为:操作类型:select查询字段名:name表名:selectid,name,score from table2的结果;二级拆分结果为:操作类型:select,查询字段名:id,name,score表名:table2。通过获取上述信息,可匹配相应预置或者自定义规则,如果命中,则获取其策略执行动作,如果是阻止,则执行相应的阻断,否则放行,可进行正常的数据库资源访问。
请参考图4,图4示出了本申请实施例提供的安全访问数据库的装置,应理解,该装置与上述图2方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该安全访问数据库的装置,包括:获取模块101,被配置为获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;SQL解析模块102,被配置为采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;安全确认模块103,被配置为根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的安全访问数据的装置的具体工作过程,可以参考图2所示的方法中的对应过程,在此不再过多赘述。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现图2或图3所述的方法。
如图5所示,本申请实施例提供一种安全访问数据库的设备500,包括存储器510、处理器520以及存储在所述存储器510上并可在所述处理器520上运行的计算机程序,其中,所述处理器执行所述程序时可实现上述图2方法。例如,处理器520通过总线530从存储器510中读取程序,至少可以实现:S101获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;S102,采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;S103,根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图2或图3中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种安全访问数据库的方法,其特征在于,所述方法包括:
获取访问用户的用户属性信息以及结构化查询语言SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;
采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;
根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。
2.如权利要求1所述的方法,其特征在于,所述采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,包括:
捕获所述SQL语句的各字段;
从所述各字段中提取有效信息,其中,所述有效信息是根据为各所述操作类型制定的成分模板确定的。
3.如权利要求1所述的方法,其特征在于,所述根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限,包括:根据匹配规则和所述用户属性的匹配结果确认用户校验合格。
4.如权利要求1所述的方法,其特征在于,所述根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限,包括:
根据匹配规则与所述用户属性的匹配结果确认用户校验合格;
根据所述匹配规则和所述操作类型的匹配结果确定合格用户的操作请求被允许。
5.如权利要求1所述的方法,其特征在于,所述根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限,包括:
根据匹配规则和所述用户属性的匹配结果确认用户校验合格;
根据所述匹配规则和所述操作类型的匹配结果确定合格用户的操作请求被允许;
根据所述匹配规则与所述操作对象的匹配结果确定所述合格用户的被允许的操作的操作对象合规。
6.如权利要求1-5任一项所述的方法,其特征在于,所述操作对象包括:表、视图或者字段。
7.如权利要求1-5任一项所述的方法,其特征在于,所述语法分析基于YACC/LEX策略。
8.一种安全访问数据库的装置,其特征在于,所述装置包括:
获取模块,被配置为获取访问用户的用户属性信息以及SQL语句,其中,所述用户属性信息包括:用户名,用户登录的IP地址和访问时间;
SQL解析模块,被配置为采用语法分析解析所述SQL语句得到SQL属性信息、操作类型以及操作对象,其中,所述SQL属性信息包括所述SQL语句的执行时间戳,所述操作类型包括数据定义操作、数据查询操作、数据增加操作、数据更新操作、数据插入操作或数据控制操作;
安全确认模块,被配置为根据所述用户属性信息、所述SQL属性信息、所述操作类型、所述操作对象和权限规则确认所述访问用户具有操作权限。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-7中任意一条权利要求所述的方法。
10.一种安全访问数据库的设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-7中任意一条权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600959.4A CN111767572A (zh) | 2020-06-28 | 2020-06-28 | 一种安全访问数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600959.4A CN111767572A (zh) | 2020-06-28 | 2020-06-28 | 一种安全访问数据库的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111767572A true CN111767572A (zh) | 2020-10-13 |
Family
ID=72722624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010600959.4A Pending CN111767572A (zh) | 2020-06-28 | 2020-06-28 | 一种安全访问数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767572A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231733A (zh) * | 2020-10-29 | 2021-01-15 | 刘秀萍 | 对象代理特征数据库的mac防护增强系统 |
CN112347469A (zh) * | 2020-11-10 | 2021-02-09 | 浙江百应科技有限公司 | 一种低侵入的数据权限处理方法、系统及其电子设备 |
CN112580091A (zh) * | 2020-11-04 | 2021-03-30 | 京信数据科技有限公司 | 一种细粒度数据访问控制方法及装置 |
CN113239372A (zh) * | 2021-04-30 | 2021-08-10 | 中国银行股份有限公司 | 数据库访问控制方法及系统 |
CN117556452A (zh) * | 2024-01-10 | 2024-02-13 | 支付宝(杭州)信息技术有限公司 | 一种针对数据库的访问控制方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009174A1 (en) * | 2001-07-16 | 2003-01-30 | Log-On Software Ltd. | Improvements in or relating to database access security |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN107403106A (zh) * | 2017-07-18 | 2017-11-28 | 北京计算机技术及应用研究所 | 基于终端用户的数据库细粒度访问控制方法 |
CN109144978A (zh) * | 2018-08-15 | 2019-01-04 | 新华三大数据技术有限公司 | 权限管理方法及装置 |
CN109766686A (zh) * | 2018-04-25 | 2019-05-17 | 新华三大数据技术有限公司 | 权限管理 |
-
2020
- 2020-06-28 CN CN202010600959.4A patent/CN111767572A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009174A1 (en) * | 2001-07-16 | 2003-01-30 | Log-On Software Ltd. | Improvements in or relating to database access security |
CN104077284A (zh) * | 2013-03-26 | 2014-10-01 | 中国移动通信集团湖北有限公司 | 一种数据安全访问方法及系统 |
CN107403106A (zh) * | 2017-07-18 | 2017-11-28 | 北京计算机技术及应用研究所 | 基于终端用户的数据库细粒度访问控制方法 |
CN109766686A (zh) * | 2018-04-25 | 2019-05-17 | 新华三大数据技术有限公司 | 权限管理 |
CN109144978A (zh) * | 2018-08-15 | 2019-01-04 | 新华三大数据技术有限公司 | 权限管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
崔娜;: "面向数据库性能的SQL语句解析与翻译", 现代电子技术 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231733A (zh) * | 2020-10-29 | 2021-01-15 | 刘秀萍 | 对象代理特征数据库的mac防护增强系统 |
CN112580091A (zh) * | 2020-11-04 | 2021-03-30 | 京信数据科技有限公司 | 一种细粒度数据访问控制方法及装置 |
CN112347469A (zh) * | 2020-11-10 | 2021-02-09 | 浙江百应科技有限公司 | 一种低侵入的数据权限处理方法、系统及其电子设备 |
CN113239372A (zh) * | 2021-04-30 | 2021-08-10 | 中国银行股份有限公司 | 数据库访问控制方法及系统 |
CN117556452A (zh) * | 2024-01-10 | 2024-02-13 | 支付宝(杭州)信息技术有限公司 | 一种针对数据库的访问控制方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111767572A (zh) | 一种安全访问数据库的方法及装置 | |
Jang et al. | Detecting SQL injection attacks using query result size | |
US8863301B2 (en) | Classification of an electronic document | |
US20090094193A1 (en) | Secure normal forms | |
Hou et al. | MongoDB NoSQL injection analysis and detection | |
KR101620601B1 (ko) | 보안성 진단 방법 및 이를 위한 컴퓨터 프로그램, 그 기록매체 | |
CN110895537A (zh) | 自由查询权限控制的方法及装置 | |
EP3776314B1 (en) | Staged dynamic taint flow inference | |
US20070130620A1 (en) | Method, computer arrangement, computer program and computer program product for checking for the presence of control statements in a data value | |
CN114048227A (zh) | Sql语句异常检测方法、装置、设备及存储介质 | |
CN106020923B (zh) | SELinux策略的编译方法及系统 | |
US9330276B2 (en) | Conditional role activation in a database | |
Sharma et al. | SQL injection attacks-a systematic review | |
Aliero et al. | Classification of Sql Injection Detection And Prevention Measure | |
Biskup et al. | Inference-proof view update transactions with minimal refusals | |
US10235450B2 (en) | Semantic layer for processing machine data | |
Fonseca et al. | Detecting malicious SQL | |
Asha et al. | Preventing sql injection attacks | |
Bulusu et al. | Classification of Lightweight Directory Access Protocol query injection attacks and mitigation techniques | |
Grandison et al. | Hippocratic databases: current capabilities and future trends | |
CN113051329B (zh) | 基于接口的数据采集方法、装置、设备及存储介质 | |
CN113486383B (zh) | 一种前端元素的权限控制方法、装置、存储介质和设备 | |
US11481513B2 (en) | Decentralized storage of personal data | |
Jacob et al. | SQL INJECTION ATTACKS AND VULNERABILITIES | |
CN110362579B (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 |