[发明专利]一种数据库权限实现方法和系统有效
申请号: | 201610187615.9 | 申请日: | 2016-03-29 |
公开(公告)号: | CN107239710B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 李少辉;徐安华;王超;冯是聪 | 申请(专利权)人: | 北京明略软件系统有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F21/45 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 李红爽;凌齐文 |
地址: | 102218 北京市昌*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 权限 实现 方法 系统 | ||
本发明公开了一种数据库权限实现方法和系统,包括:对输入的SQL查询语句进行解析,生成语法树。通过元数据获得具有预设的描述形式的权限信息。将权限信息加入语法树,根据加入权限信息的语法树获取经权限信息过滤后的数据信息。对数据信息的可操作权限进行验证,根据验证结果对数据信息执行相关操作。通过本发明的方案,能够在结构化查询语言SQL以及元数据层面上实现跨数据库的统一授权。
技术领域
本发明涉及数据库访问技术领域,尤其涉及一种数据库权限实现方法和系统。
背景技术
现有数据库的访问授权要么是在数据库的实现层面上来做,提供相关的结构化查询语言SQL语句或者管理套件来进行授权操作。要么是通过添加赘余的数据列来标示数据的权限,然后在应用层通过判断这些权限数据来实现对数据的授权访问。
上述方法最大的问题在于无法实现在所有不同类型的数据库上统一授权,并且需要存储大量的赘余权限数据来描述数据权限。
发明内容
为了解决上述问题,本发明提出了一种数据库权限实现方法和系统,能够在SQL以及元数据层面上实现跨数据库的统一授权。
为了达到上述目的,本发明提出了一种数据库权限实现方法,该方法包括:
对输入的结构化查询语言SQL查询语句进行解析,生成语法树。
通过语法树的元数据获得具有预设的描述形式的查询信息。
对查询信息的可操作权限进行验证,根据验证结果对通过查询信息查询到的数据信息执行相关操作。
优选地,
预设的描述形式包括:五元组形式;五元组包括数据库链接信息server、数据库名称database、表名称table、列名称column和权限类型privilege。
其中,privilege包括:读取Select、插入Insert、修改Alter、删除drop和全部All。
All包括:Select、Insert、Alter和drop。
优选地,通过语法树的元数据获得具有预设的描述形式的查询信息包括:
根据语法树的元数据获取与SQL查询语句的关键字相关的一个或多个第一server。
从一个或多个第一server中获取与SQL查询语句的关键字相关的一个或多个第一数据库。
从一个或多个第一数据库中获取与SQL查询语句的关键字相关的一个或多个第一数据表。
从一个或多个第一数据表中获取与SQL查询语句的关键字相关的一个或多个第一数据列。
将第一server、第一数据库、第一数据表、第一数据列和想要执行的privilege以五元组的形式形成查询信息。
优选地,
对查询信息的可操作权限进行验证包括:
将五元组形式的查询信息中所包含的第一privilege项与预存的五元组形势的权限信息中所包含的第二privilege项相比较;并且,对于第一privilege项所包含的一个或多个操作分别判断是否与第二privilege项中包含的一个或多个可执行操作中的至少一个可执行操作相同;其中,第一privilege项和第二privilege项分别至少包括以下一种:Select、Insert、Alter、drop和All。
根据验证结果对通过查询信息查询到的数据信息执行相关操作包括:
当第二privilege项为All时,执行第一privilege项所包含的一个或多个操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明略软件系统有限公司,未经北京明略软件系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610187615.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种安全漏洞检测的方法以及装置
- 下一篇:一种数据库行权限控制方法和系统