The invention discloses a database authority realizing method and a system, comprising analyzing an input SQL query sentence and generating a syntax tree. Obtaining permission information with default description form through metadata. The permission information is added to the syntax tree, and the data information is filtered after the permission information is added according to the syntax tree of the permission information. Verify the operational authority of the data information and perform relevant operations on the data information based on the validation results. Through the scheme of the invention, the unified authorization of the cross database can be realized on the structured query language SQL and the metadata level.
【技术实现步骤摘要】
一种数据库权限实现方法和系统
本专利技术涉及数据库访问
,尤其涉及一种数据库权限实现方法和系统。
技术介绍
现有数据库的访问授权要么是在数据库的实现层面上来做,提供相关的结构化查询语言SQL语句或者管理套件来进行授权操作。要么是通过添加赘余的数据列来标示数据的权限,然后在应用层通过判断这些权限数据来实现对数据的授权访问。上述方法最大的问题在于无法实现在所有不同类型的数据库上统一授权,并且需要存储大量的赘余权限数据来描述数据权限。
技术实现思路
为了解决上述问题,本专利技术提出了一种数据库权限实现方法和系统,能够在SQL以及元数据层面上实现跨数据库的统一授权。为了达到上述目的,本专利技术提出了一种数据库权限实现方法,该方法包括:对输入的结构化查询语言SQL查询语句进行解析,生成语法树。通过语法树的元数据获得具有预设的描述形式的查询信息。对查询信息的可操作权限进行验证,根据验证结果对通过查询信息查询到的数据信息执行相关操作。优选地,预设的描述形式包括:五元组形式;五元组包括数据库链接信息server、数据库名称database、表名称table、列名称column和 ...
【技术保护点】
一种数据库权限实现方法,其特征在于,所述方法包括:对输入的结构化查询语言SQL查询语句进行解析,生成语法树;通过所述语法树的元数据获得具有预设的描述形式的查询信息;对所述查询信息的可操作权限进行验证,根据验证结果对通过所述查询信息查询到的数据信息执行相关操作。
【技术特征摘要】
1.一种数据库权限实现方法,其特征在于,所述方法包括:对输入的结构化查询语言SQL查询语句进行解析,生成语法树;通过所述语法树的元数据获得具有预设的描述形式的查询信息;对所述查询信息的可操作权限进行验证,根据验证结果对通过所述查询信息查询到的数据信息执行相关操作。2.如权利要求1所述的数据库权限实现方法,其特征在于,所述预设的描述形式包括:五元组形式;所述五元组包括数据库链接信息server、数据库名称database、表名称table、列名称column和权限类型privilege;其中,所述privilege包括:读取Select、插入Insert、修改Alter、删除drop和全部All;所述All包括:所述Select、Insert、Alter和drop。3.如权利要求2所述的数据库权限实现方法,其特征在于,所述通过所述语法树的元数据获得具有预设的描述形式的查询信息包括:根据所述语法树的元数据获取与所述SQL查询语句的关键字相关的一个或多个第一server;从所述一个或多个第一server中获取与所述SQL查询语句的关键字相关的一个或多个第一数据库;从所述一个或多个第一数据库中获取与所述SQL查询语句的关键字相关的一个或多个第一数据表;从所述一个或多个第一数据表中获取与所述SQL查询语句的关键字相关的一个或多个第一数据列;将所述第一server、所述第一数据库、所述第一数据表、所述第一数据列和想要执行的privilege以所述五元组的形式形成所述查询信息。4.如权利要求3所述的数据库权限实现方法,其特征在于,所述对所述查询信息的可操作权限进行验证包括:将所述五元组形式的查询信息中所包含的第一privilege项与预存的五元组形势的权限信息中所包含的第二privilege项相比较;并且,对于所述第一privilege项所包含的一个或多个操作分别判断是否与所述第二privilege项中包含的一个或多个可执行操作中的至少一个可执行操作相同;其中,所述第一privilege项和所述第二privilege项分别至少包括以下一种:Select、Insert、Alter、drop和All;所述根据验证结果对通过所述查询信息查询到的数据信息执行相关操作包括:当所述第二privilege项为All时,执行所述第一privilege项所包含的一个或多个操作;当所述第二privilege项不为All,并且当所述第一privilege项所包含的一个操作与所述第二privilege项中的一个可执行操作相同时,执行所述可执行操作;当所述第二privilege项不为All,并且当所述第一privilege项所包含的多个操作与所述第二privilege项中的多个可执行操作分别对应相同时,分别执行所述多个可执行操作。5.如权利要求4所述的数据库权限实现方法,其特征在于,所述方法还包括;对所述数据信息执行所述可执行操作以后,如果所述数据信息有变更,保存变更后的所述数据信息并更新相应的元数据;并对更新后的元数据的可操作权限进行更新;其中,所述对更新后的元数据的可操作权限进行更新包括:对经过所述Insert和/或Alter操作的元数据进行数据权限的变更或删除,以及对经过所述drop操作的元数据进行数据权限的删除。6.一种数据库权限实现系统,其特征在于,所述系统包括:结构化查询语言SQL解析器、元数据过滤模块和权限监测模块;...
【专利技术属性】
技术研发人员:李少辉,徐安华,王超,冯是聪,
申请(专利权)人:北京明略软件系统有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。