CN114840521B - 数据库的权限管理和数据保护方法、装置、设备和存储介质 - Google Patents
数据库的权限管理和数据保护方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114840521B CN114840521B CN202210424448.0A CN202210424448A CN114840521B CN 114840521 B CN114840521 B CN 114840521B CN 202210424448 A CN202210424448 A CN 202210424448A CN 114840521 B CN114840521 B CN 114840521B
- Authority
- CN
- China
- Prior art keywords
- authority
- user
- database
- sql statement
- field
- 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.)
- Active
Links
Images
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/602—Providing cryptographic facilities or services
-
- 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/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本申请的实施例提供了应用于数据库的权限管理和数据保护方法、装置、设备和计算机可读存储介质。所述方法包括根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。以此方式,提升了物理存储系统权限,同时无需修改物理数据存储系统的数据内容,即可实现对数据的保护。
Description
技术领域
本申请的实施例涉及数据处理领域,尤其涉及应用于数据库的权限管理和数据保护方法、装置、设备和计算机可读存储介质。
背景技术
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
现有的数据库种类繁多,用户可根据不同的使用需求,选取所需的数据库类型。
但是现有数据库仍存在以下缺点:
大部分NoSQL的数据库系统没有权限管理体系;
大多数数据库系统不支持字段级管理,例如Oracle、MySQL等关系型数据库;
数据保护时大多是通过修改数据库存储系统的数据内容实现;
因此,如何为现有的数据库增加统一的字段级和行级的权限管理,同时无需修改物理数据存储系统的数据内容实现对数据的保护,是目前急需解决的问题。
发明内容
根据本申请的实施例,提供了一种应用于数据库的权限管理和数据保护方案。
在本申请的第一方面,提供了一种应用于数据库的权限管理和数据保护方法。该方法包括:
根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;
接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;
根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;
通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
进一步地,所述根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表包括:
根据用户的类型,设置每个用户对所述数据库表以及所述表中的行和字段的增、删、改、查的权限;
基于所述增、删、改、查的权限,构建用户权限表。
进一步地,所述根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表还包括:
根据用户的类型,通过不同的预设加密算法,对同一数据库表中的相同字段进行加密的加密算法权限。
进一步地,
通过SQL的where子句对数据库表中的行进行授权。
进一步地,所述根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句包括:
通过所述SQL语句中的表信息和访问用户对数据库中的表的操作权限,验证所述访问用户的表级操作权限;
若通过,则通过所述SQL语句中的字段信息和访问用户对数据库表中的字段操作权限,验证访问用户的字段级操作权限;
若通过,则调取用户权限表中,所述访问用户对每个字段内容进行处理的加密算法,将所述加密算法替换SQL语句中的字段;
判断所述SQL语句中是否包含where子句,若不包括,则读取所述用户权限表中所述访问用户的行级数据权限,并将所述行级数据权限添加到已进行字段替换的SQL语句中。
进一步地,所述预设的字段加密算法包括md5和/或自定义算法。
进一步地,根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句还包括:
若所述SQL语句中包含where子句,则将where子句的数据表达式与所述用户权限表中所述访问用户的行级数据权限进行比较,验证访问用户的行级操作权限。
在本申请的第二方面,提供了一种应用于数据库的权限管理和数据保护装置。该装置包括:
授权模块,用于根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;
接收模块,用于接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;
鉴权模块,用于根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;
访问模块,用于通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
在本申请的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本申请的第一方面的方法。
本申请实施例提供的应用于数据库的权限管理和数据保护方法,通过根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容,实现了对同一字段的数据内容,通过不同的授权方式,不同用户访问相同字段得到的数据内容不一样,达到了数据加密的目的,从而实现了对数据的保护。
应当理解,发明内容部分中所描述的内容并非旨在限定本申请的实施例的关键或重要特征,亦非用于限制本申请的范围。本申请的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本申请各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本申请的实施例的应用于数据库的权限管理和数据保护方法的流程图;
图2示出了根据本申请的实施例的应用于数据库的权限管理和数据保护装置的方框图;
图3示出了适于用来实现本申请实施例的终端设备或服务器的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
名词解析:
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。不需要用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,具有极大的灵活性和强大的功能。
图1示出了根据本公开实施例的应用于数据库的权限管理和数据保护方法的流程图。所述方法包括:
S110,根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表。
在一些实施例中,选择待授权的存于数据库中的表,进行操作授权,构建用户权限表;所述操作包括增、删、改、查;所述数据库中的表包括行和字段。
其中,所述用户权限表中包括不同用户对数据库中的表以及所述表中的字段和行的操作权限,以及对每个字段内容进行处理的加密算法。
创建一个用户(DBA,数据库管理员),对数据库(如MySQL、Oracle、HDFS)中的表进行授权;在本公开中,创建授权时,无需了解物理数据库的授权体系,仅需遵循统一的数据库标准授权方式(增删改查权限体系);
如,对数据库中的MySQL数据库中的user表进行授权,首先构建user表的映射表logic_mysql_user,所述logic_mysql_user表如表1所示:
表1
将字段操作设置为权限,对不同用户进行字段操作授权;如select、update、insert、delete;针对同一张表,在不同用户使用时,可设置不同的字段权限;
例如,用户A对于logic_mysql_user表中的字段权限为id(查询select),name(查询select);
用户B对于logic_mysql_user表中的字段权限为id(查询select,更新update)、name(查询select,更新update)、dept_id(查询select,更新update);
将字段级加密算法设置为权限,根据不同用户进行字段级加密算法授权;所述加密算法包括md5和/或用户自定义函数等;
例如,对于不同的用户A和用户B,同时对id_card字段进行加密算法授权,将用户A对id_card字段授权为md5,用户B对id_card字段授权为udf。当用户A和用户B都执行同一条SQL语句(select id_card from logic_view_user)时,用户A返回的id_card是使用了md5(id_card)计算之后的结果,而用户B返回的id_card是使用了udf(id_card)计算之后的结果。
具体地,
针对用户A:
选择id_card字段,设置id_card字段可查询(select)权限,同时设置id_card的加密算法授权为函数md5;
当用户A输入SQL语句“select id_card from logic_mysql_user”进行数据库访问时,将SQL语句替换为“select md5(id_card)from logic_mysql_user”。
针对用户B:
选择id_card字段,设置id_card字段可查询(select)权限,同时设置id_card的加密算法授权为函数udf;
当用户B输入SQL语句(和用户A相同的语句)“select id_card from logic_mysql_user”进行数据库访问时,将SQL语句替换为“select udf(id_card)from logic_mysql_user”;
即,整个数据字段加密授权和SQL访问过程仅需要对SQL语句进行操作,不需要对数据库的原始数据进行处理,针对不同的用户A和用户B,通过配置不同的字段级加密权限即可看到不同的数据内容,从而实现对数据的防护;
将查询SQL的where子句作为权限,根据不同用户进行行级数据授权;
例如,分别对用户A和用户B针对行级数据进行授权,将用户A的行级授权设置为“where dept_id=’d1’”;将用户B的行级授权设置为“where dept_id=’d2’”。当用户A和用户B执行同一条SQL(select*from logic_mysql_user),用户A查看的数据为d1的数据,用户B查看的数据为d2的数据。
具体地,针对用户A:
设置行级权限dept_id=’d1’;
当用户A输入SQL语句“select*from logic_mysql_user”进行数据库访问时,将SQL语句替换为“select*from logic_mysql_user where dept_id=’d1’”;
针对用户B:
设置行级权限dept_id=’d2’;
当用户A输入SQL语句“select*from logic_mysql_user”进行数据库访问时,将SQL语句替换为“select*from logic_mysql_user where dept_id=’d2’”;
即,行级授权和SQL访问过程仅需要对SQL语句进行操作,不需要对数据库的原始数据进行处理,针对不同的用户A和用户B,通过配置不同的行级授权即可看到的数据不一样,从而实现对数据的防护。
通过上述无侵入的方式在不改变用户原有的使用模式、不修改原有物理存储系统的数据基础上,成功实现了数据内容的加密防护,大大减少了开发和维护成本。
下面给出根据本发明一个具体实施例:
基于数据库表logic_mysql_user,对用户A的权限进行授权,构建用户权限表,所述用户权限表中包括:
logic_mysql_user表的操作权限为查询(select);
字段id的操作权限为查询(select);
字段name的操作权限为查询(select);
字段dept_id的操作权限为查询(select);
字段id_card的操作权限为查询(select);
字段id_card的加密算法权限为md5;
行级数据权限dept_id=’d1’。
S120,接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限。
在一些实施例中,接收访问数据库的SQL语句,并对所述SQL语句进行解析,提取所述SQL语句中的表、行和字段信息。
同时获取访问用户对应的操作权限表,并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限。
S130,根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句。
在一些实施例中,基于所述SQL语句的表名(如logic_mysql_user)和对应的操作类型(如select),以及访问用户对数据库中的表的操作权限,验证所述访问用户的表级操作权限;
若验证通过,如,具备logic_mysql_user的select权限,则通过所述SQL语句中的字段信息(字段名和操作类型)和访问用户对数据库表中的字段操作权限,验证访问用户的字段级操作权限;
若验证通过,如具备访问id,name,dept_id,id_card的权限、操作类型为select,则调取用户权限表中,所述访问用户对每个字段内容进行处理的加密算法,将所述加密算法替换SQL语句中的字段;以用户A为例,验证用户A的数据字段加密权限,具备id_card的md5加密权限,将SQL语句中的id_card字段替换为md5(id_card);
判断所述SQL语句中是否包含where子句,若不包括,即无行级冲突,则读取所述用户权限表中所述访问用户的行级数据权限,并将所述行级数据权限添加到已进行字段替换的SQL语句中;以用户A为例,读取用户A的行级数据权限,将dept_id=’d1’增加到查询语句中;若包括,则不进行增加;
以访问用户为A,SQL访问语句为select id,name,dept_id,id_card from logic_mysql_user为例,综上可得生成权限调整后的SQL语句为select id,name,dept_id,md5(id_card)from logic_mysql_user where dept_id=’d1’。
S140,通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
在一些实施例中,通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
如用户A通过权限调整后的SQL语句select id,name,dept_id,md5(id_card)fromlogic_mysql_user where dept_id=’d1’访问数据库中的表1,得到的数据内容为1、张三、d1、134567。
根据本公开的实施例,实现了以下技术效果:
不需修改任何物理存储系统的配置、不用增加任何新的设备,即可完成对数据存储系统的权限管理提升,即对不支持字段、行级权限的物理存储系统增加字段和行级的管理权限。
同时,通过本公开的授权机制,不同的用户在查询同一张表的同一个字段时,可根据不同的字段级加密权限返回不同的数据内容,从而实现了数据保护的目的。
节省了数据库管理人员的大量时间成本,同时通过可扩展的字段级加密权限保护机制,满足了实际业务对于数据保护多变的实时加密需求。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本申请所述方案进行进一步说明。
图2示出了根据本申请的实施例的应用于数据库的权限管理和数据保护装置200的方框图如图2所示,装置200包括:
授权模块210,用于根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;
接收模块220,用于接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;
鉴权模块230,用于根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;
访问模块240,用于通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图3示出了适于用来实现本申请实施例的终端设备或服务器的结构示意图。
如图3所示,终端设备或服务器300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有系统300操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
特别地,根据本申请的实施例,上文方法流程步骤可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本申请的方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (7)
1.一种应用于数据库的权限管理和数据保护方法,其特征在于,包括:
根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;
其中,所述用户权限表包括:
根据用户的类型,通过不同的预设加密算法,对同一数据库表中的相同字段进行加密的加密算法权限;
接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;
根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;所述根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句,包括:通过所述SQL语句中的表信息和访问用户对数据库中的表的操作权限,验证所述访问用户的表级操作权限;若通过,则通过所述SQL语句中的字段信息和访问用户对数据库表中的字段操作权限,验证访问用户的字段级操作权限;若通过,则调取用户权限表中,所述访问用户对每个字段内容进行处理的加密算法,将所述加密算法替换SQL语句中的字段;判断所述SQL语句中是否包含where子句,若不包括,则读取所述用户权限表中所述访问用户的行级数据权限,并将所述行级数据权限添加到已进行字段替换的SQL语句中;若所述SQL语句中包含where子句,则将where子句的数据表达式与所述用户权限表中所述访问用户的行级数据权限进行比较,验证访问用户的行级操作权限;
通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
2.根据权利要求1所述的方法,其特征在于,所述根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表包括:
根据用户的类型,设置每个用户对所述数据库表以及所述表中的行和字段的增、删、改、查的权限;
基于所述增、删、改、查的权限,构建用户权限表。
3.根据权利要求2所述的方法,其特征在于,
通过SQL的where子句对数据库表中的行进行授权。
4.根据权利要求1所述的方法,其特征在于,所述预设的字段加密算法包括md5和/或自定义算法。
5.一种应用于数据库的权限管理和数据保护装置,其特征在于,包括:
授权模块,用于根据用户的类型,对数据库中的表以及所述表中的行和字段进行统一授权,构建用户权限表;
其中,所述用户权限表包括:
根据用户的类型,通过不同的预设加密算法,对同一数据库表中的相同字段进行加密的加密算法权限;
接收模块,用于接收访问数据库的SQL语句,同时获取访问用户对应的操作权限表;并从所述权限表中调取所述访问用户对数据库中的表以及所述表中的字段和行的操作权限;
鉴权模块,用于根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句;所述根据所述访问用户对数据库中的表以及所述表中的字段和行的操作权限以及访问数据库的SQL语句,修改所述SQL语句,包括:通过所述SQL语句中的表信息和访问用户对数据库中的表的操作权限,验证所述访问用户的表级操作权限;若通过,则通过所述SQL语句中的字段信息和访问用户对数据库表中的字段操作权限,验证访问用户的字段级操作权限;若通过,则调取用户权限表中,所述访问用户对每个字段内容进行处理的加密算法,将所述加密算法替换SQL语句中的字段;判断所述SQL语句中是否包含where子句,若不包括,则读取所述用户权限表中所述访问用户的行级数据权限,并将所述行级数据权限添加到已进行字段替换的SQL语句中;若所述SQL语句中包含where子句,则将where子句的数据表达式与所述用户权限表中所述访问用户的行级数据权限进行比较,验证访问用户的行级操作权限;
访问模块,用于通过修改后的SQL语句对所述数据库进行访问,得到与所述访问用户的权限对应的数据内容。
6.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~4中任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210424448.0A CN114840521B (zh) | 2022-04-22 | 2022-04-22 | 数据库的权限管理和数据保护方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210424448.0A CN114840521B (zh) | 2022-04-22 | 2022-04-22 | 数据库的权限管理和数据保护方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114840521A CN114840521A (zh) | 2022-08-02 |
CN114840521B true CN114840521B (zh) | 2023-03-21 |
Family
ID=82566836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210424448.0A Active CN114840521B (zh) | 2022-04-22 | 2022-04-22 | 数据库的权限管理和数据保护方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840521B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577568B (zh) * | 2022-11-17 | 2023-03-28 | 中国汽车技术研究中心有限公司 | 仿真模型的操作权限确定方法、设备和存储介质 |
CN116401692A (zh) * | 2023-06-07 | 2023-07-07 | 天津金城银行股份有限公司 | 运营数据权限管理方法、系统、计算机设备及存储介质 |
CN116910791B (zh) * | 2023-09-12 | 2023-12-12 | 闪捷信息科技有限公司 | 数据库表列加密分析方法、装置、电子设备和存储介质 |
CN117725622B (zh) * | 2024-02-18 | 2024-04-30 | 北京安华金和科技有限公司 | 一种多方安全计算的权限控制方法和系统 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101027699A (zh) * | 2004-08-13 | 2007-08-29 | 意大利电信股份公司 | 用于安全管理存储在电子标签上的数据的方法和系统 |
CN101478536A (zh) * | 2008-12-08 | 2009-07-08 | 山东浪潮齐鲁软件产业股份有限公司 | 一种解决权限管理中访问控制的方法 |
CN102236766A (zh) * | 2011-05-10 | 2011-11-09 | 桂林电子科技大学 | 安全的数据项级数据库加密系统 |
CN106022159A (zh) * | 2016-05-13 | 2016-10-12 | 成都镜杰科技有限责任公司 | 基于云计算的erp数据处理方法 |
WO2016175894A1 (en) * | 2015-04-27 | 2016-11-03 | BenedorTSE LLC | Secure authorizations using independent communicatons and different one-time-use encryption keys for each party to a transaction |
CN106203170A (zh) * | 2016-07-19 | 2016-12-07 | 北京同余科技有限公司 | 基于角色的数据库动态脱敏服务方法和系统 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
CN107315931A (zh) * | 2017-07-05 | 2017-11-03 | 成都牵牛草信息技术有限公司 | 表单字段值操作权限授权方法 |
CN107392053A (zh) * | 2017-08-11 | 2017-11-24 | 四川长虹电器股份有限公司 | 一种企业员工信息数据库中的数据权限控制方法 |
CN107403106A (zh) * | 2017-07-18 | 2017-11-28 | 北京计算机技术及应用研究所 | 基于终端用户的数据库细粒度访问控制方法 |
CN108520183A (zh) * | 2018-04-13 | 2018-09-11 | 杭州橙鹰数据技术有限公司 | 一种数据存储方法及装置 |
CN109522707A (zh) * | 2018-10-30 | 2019-03-26 | 珠海伟诚科技股份有限公司 | 一种基于角色和资源的用户数据读写安全权限控制方法及系统 |
CN109697357A (zh) * | 2018-12-27 | 2019-04-30 | 珠海格力电器股份有限公司 | 可动态扩展的系统权限设置方法、管理系统 |
CN109802832A (zh) * | 2017-11-17 | 2019-05-24 | 中国移动通信集团公司 | 一种数据文件的处理方法、系统、大数据处理服务器和计算机存储介质 |
CN109905328A (zh) * | 2017-12-08 | 2019-06-18 | 华为技术有限公司 | 数据流的识别方法和装置 |
CN112597480A (zh) * | 2020-12-28 | 2021-04-02 | 北京炼石网络技术有限公司 | 一种可扩展的格式保留加密方法的实现方式 |
CN112632596A (zh) * | 2020-02-04 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及终端 |
CN113282591A (zh) * | 2021-06-29 | 2021-08-20 | 深圳平安智汇企业信息管理有限公司 | 权限过滤方法、装置、计算机设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273600A1 (en) * | 2003-02-03 | 2005-12-08 | Seeman El-Azar | Method and system for file data access within a secure environment |
US7155612B2 (en) * | 2003-04-30 | 2006-12-26 | International Business Machines Corporation | Desktop database data administration tool with row level security |
US20100030737A1 (en) * | 2008-07-29 | 2010-02-04 | Volker Gunnar Scheuber-Heinz | Identity enabled data level access control |
US9930026B2 (en) * | 2014-10-20 | 2018-03-27 | Sap Se | Encryption/decryption in a cloud storage solution |
CN106228084A (zh) * | 2016-07-19 | 2016-12-14 | 北京同余科技有限公司 | 基于角色的敏感字段动态调整的数据保护方法和系统 |
US10536276B2 (en) * | 2017-10-30 | 2020-01-14 | International Business Machines Corporation | Associating identical fields encrypted with different keys |
US20190371442A1 (en) * | 2018-05-31 | 2019-12-05 | Allscripts Software, Llc | Apparatus, system and method for secure processing and transmission of data |
CN109815284A (zh) * | 2019-01-04 | 2019-05-28 | 平安科技(深圳)有限公司 | 一种数据处理的方法和装置 |
CN110334545B (zh) * | 2019-06-28 | 2022-02-08 | 北京淇瑀信息科技有限公司 | 一种基于sql的权限控制方法、装置和电子设备 |
CN111460506B (zh) * | 2020-04-03 | 2024-04-16 | 中国工商银行股份有限公司 | 数据访问控制方法及装置 |
CN114328574A (zh) * | 2021-11-29 | 2022-04-12 | 上海欣兆阳信息科技有限公司 | 一种数据查询方法、装置、电子设备及计算机可读存储介质 |
CN114372276A (zh) * | 2021-12-14 | 2022-04-19 | 闪捷信息科技有限公司 | 一种数据安全防护方法、装置、电子设备及存储介质 |
-
2022
- 2022-04-22 CN CN202210424448.0A patent/CN114840521B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101027699A (zh) * | 2004-08-13 | 2007-08-29 | 意大利电信股份公司 | 用于安全管理存储在电子标签上的数据的方法和系统 |
CN101478536A (zh) * | 2008-12-08 | 2009-07-08 | 山东浪潮齐鲁软件产业股份有限公司 | 一种解决权限管理中访问控制的方法 |
CN102236766A (zh) * | 2011-05-10 | 2011-11-09 | 桂林电子科技大学 | 安全的数据项级数据库加密系统 |
WO2016175894A1 (en) * | 2015-04-27 | 2016-11-03 | BenedorTSE LLC | Secure authorizations using independent communicatons and different one-time-use encryption keys for each party to a transaction |
CN106022159A (zh) * | 2016-05-13 | 2016-10-12 | 成都镜杰科技有限责任公司 | 基于云计算的erp数据处理方法 |
CN106203170A (zh) * | 2016-07-19 | 2016-12-07 | 北京同余科技有限公司 | 基于角色的数据库动态脱敏服务方法和系统 |
CN106250782A (zh) * | 2016-08-12 | 2016-12-21 | 天津西瑞尔信息工程有限公司 | 一种基于sql语句解析的数据权限控制方法及装置 |
CN107315931A (zh) * | 2017-07-05 | 2017-11-03 | 成都牵牛草信息技术有限公司 | 表单字段值操作权限授权方法 |
CN107403106A (zh) * | 2017-07-18 | 2017-11-28 | 北京计算机技术及应用研究所 | 基于终端用户的数据库细粒度访问控制方法 |
CN107392053A (zh) * | 2017-08-11 | 2017-11-24 | 四川长虹电器股份有限公司 | 一种企业员工信息数据库中的数据权限控制方法 |
CN109802832A (zh) * | 2017-11-17 | 2019-05-24 | 中国移动通信集团公司 | 一种数据文件的处理方法、系统、大数据处理服务器和计算机存储介质 |
CN109905328A (zh) * | 2017-12-08 | 2019-06-18 | 华为技术有限公司 | 数据流的识别方法和装置 |
CN108520183A (zh) * | 2018-04-13 | 2018-09-11 | 杭州橙鹰数据技术有限公司 | 一种数据存储方法及装置 |
CN109522707A (zh) * | 2018-10-30 | 2019-03-26 | 珠海伟诚科技股份有限公司 | 一种基于角色和资源的用户数据读写安全权限控制方法及系统 |
CN109697357A (zh) * | 2018-12-27 | 2019-04-30 | 珠海格力电器股份有限公司 | 可动态扩展的系统权限设置方法、管理系统 |
CN112632596A (zh) * | 2020-02-04 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及终端 |
CN112597480A (zh) * | 2020-12-28 | 2021-04-02 | 北京炼石网络技术有限公司 | 一种可扩展的格式保留加密方法的实现方式 |
CN113282591A (zh) * | 2021-06-29 | 2021-08-20 | 深圳平安智汇企业信息管理有限公司 | 权限过滤方法、装置、计算机设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
Luca Ferretti.Distributed, Concurrent, and Independent Access to Encrypted Cloud Databases.2014,第25卷(第25期),437 - 446. * |
张剑强,戴一奇.基于代理的密文数据库的设计与实现.2002,(第18期),199-201. * |
李亚伟.MySQL的存储安全的研究与实现.2012,I138-1423. * |
李捷.数据库加密系统的研究与实现.2009,I138-20. * |
王春爽 ; .数据库加密中的二级密钥体制.2008,(第02期),183-184. * |
Also Published As
Publication number | Publication date |
---|---|
CN114840521A (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114840521B (zh) | 数据库的权限管理和数据保护方法、装置、设备和存储介质 | |
CN108874863B (zh) | 一种数据访问的控制方法及数据库访问装置 | |
US10719567B2 (en) | Database query processing on encrypted data | |
US10108813B2 (en) | Query conditions-based security | |
US8078595B2 (en) | Secure normal forms | |
CN105518676B (zh) | 查询任意半结构化数据的通用的sql增强以及高效地支持这样的增强的技术 | |
US8108367B2 (en) | Constraints with hidden rows in a database | |
US20070038596A1 (en) | Restricting access to data based on data source rewriting | |
US9110961B2 (en) | Single command data warehouse table update | |
US8812554B1 (en) | Method and system for storing shared data records in relational database | |
US10430605B1 (en) | Differentially private database permissions system | |
US9251355B2 (en) | Field level database encryption using a transient key | |
Hada et al. | XML access control language: Provisional authorization for XML documents | |
US20100319067A1 (en) | Method and System for Managing Object Level Security Using an Object Definition Hierarchy | |
US20100281060A1 (en) | Type system for access control lists | |
US11924185B2 (en) | Method and system for general data protection compliance via blockchain | |
JPH06337807A (ja) | データベースにおける制約の実行の自動化のためのシステム及び方法 | |
US11741258B2 (en) | Dynamic data dissemination under declarative data subject constraints | |
CN114647825A (zh) | 访问权限控制方法、装置、电子设备和计算机存储介质 | |
CN113342775B (zh) | 基于云的计算环境中的集中式多租户即服务 | |
CN109214210A (zh) | 一种优化蜂巢权限管理的方法及系统 | |
CN114706857A (zh) | 跨多源异构存储系统的统一鉴/授权方法、设备和存储介质 | |
CN108140053B (zh) | 可插拔数据库锁定配置文件 | |
CN109299613B (zh) | 数据库分区权限的设置方法和终端设备 | |
CN111737293A (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 |