CN107689949B - 数据库权限管理方法和系统 - Google Patents
数据库权限管理方法和系统 Download PDFInfo
- Publication number
- CN107689949B CN107689949B CN201710211546.5A CN201710211546A CN107689949B CN 107689949 B CN107689949 B CN 107689949B CN 201710211546 A CN201710211546 A CN 201710211546A CN 107689949 B CN107689949 B CN 107689949B
- Authority
- CN
- China
- Prior art keywords
- database
- management
- external table
- authority
- creating
- 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
- 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
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种数据库权限管理方法,该方法包括:获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;根据预先配置的管理权限信息,确定所述登录账户的管理权限;判断所述登录账户对所述外部表的管理操作是否超出其管理权限;若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作。本发明还公开了一种数据库权限管理系统。本发明实现了对第二数据库的权限管控,提高了所述第二数据库的安全性。
Description
技术领域
本发明涉及数据库安全技术领域,尤其涉及一种数据库权限管理方法和系统。
背景技术
Redis等非关系型数据库是开源、高性能的key-value(键-值)数据库,追求高效和简洁。
但是,Redis等非关系型数据库的后台管理中没有角色管理功能,所有的用户都是通过同一个账户名和密码登录数据库的。也即,只要有了Redis数据库的账户名和密码,即可以登录Redis数据库不受限制的进行数据插入、删除等操作,会给数据库的数据安全带来极大的风险。
发明内容
本发明的主要目的在于提供一种数据库权限管理方法和系统,旨在解决数据库不能进行权限管理造成安全风险的技术问题。
为实现上述目的,本发明提供一种数据库权限管理方法,所述数据库权限管理方法包括以下步骤:
获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;
根据预先配置的管理权限信息,确定所述登录账户的管理权限;
判断所述登录账户对所述外部表的管理操作是否超出其管理权限;
若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作。
优选地,所述数据库权限管理方法还包括:
创建第一数据库实例,在所述第一数据库实例中创建第二数据库;
为所述第二数据库创建外部服务,并授权给所述第一数据库使用;
在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系。
优选地,所述在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系的步骤包括:
根据所述第二数据库包含的数据类型,在所述第一数据库中分别创建对应的外部表;
基于所述外部服务将所述第二数据库中各类型的数据分别映射到对应的外部表中,建立所述外部表与所述第二数据库的映射关系。
优选地,所述数据库权限管理方法还包括:
若收到输入的账户创建指令,则根据所述账户创建指令,在所述第一数据库中创建对应的账户并配置其管理权限。
优选地,所述判断所述登录账户对所述外部表的管理操作是否超出其管理权限的步骤之后,还包括:
若所述登录账户的管理操作超出其管理权限,则拒绝所述管理操作。
此外,为实现上述目的,本发明还提供一种数据库权限管理系统,所述数据库权限管理系统包括:
获取模块,用于获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;
权限模块,用于根据预先配置的管理权限信息,确定所述登录账户的管理权限;
判断模块,用于判断所述登录账户对所述外部表的管理操作是否超出其管理权限;
同步模块,用于若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作。
优选地,所述数据库权限管理系统还包括:
创建模块,用于创建第一数据库实例,在所述第一数据库实例中创建第二数据库;为所述第二数据库创建外部服务,并授权给所述第一数据库使用;在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系。
优选地,所述创建模块还用于,
根据所述第二数据库包含的数据类型,在所述第一数据库中分别创建对应的外部表;基于所述外部服务将所述第二数据库中各类型的数据分别映射到对应的外部表中,建立所述外部表与所述第二数据库的映射关系。
优选地,所述创建模块还用于,
若收到输入的账户创建指令,则根据所述账户创建指令,在所述第一数据库中创建对应的账户并配置其管理权限。
优选地,所述判断模块还用于,
若所述登录账户的管理操作超出其管理权限,则拒绝所述管理操作。
本发明实施例提出的一种数据库权限管理方法和系统,通过获取成功登录第一数据库的登录账户,第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;然后,根据预先配置的管理权限信息,确定当前登录账户的管理权限,以对当前登录账户进行权限管控;然后,根据当前登录账户的管理权限,判断当前登录账户对外部表的管理操作是否超出其管理权限;若当前登录账户的管理操作未超出其管理权限,则允许此管理操作,并且基于外部表与第二数据库的映射关系,对第二数据库同步进行此管理操作,由于对第二数据库的管理操作是经过权限管控的,实现了对第二数据库的后台权限管理。本发明通过预先在第一数据库中建立的与第二数据库存在映射关系的外部表,将第一数据库与第二数据库连接起来,实现了可以通过第一数据库访问第二数据库。当登录账户对第一数据库中的外部表进行管理操作时,由于外部表与第二数据库的映射关系,其本质上是对第二数据库进行管理操作的。因此,能够利用第一数据库的权限管理功能,根据登录账户在第一数据库中的管理权限,限制登录账户对外部表的管理操作,进而对应限制对第二数据库的管理操作,实现了对第二数据库的权限管理,由此,Redis等非关系型数据库可以作为第二数据库受到数据操作权限的管控,避免了数据库不能进行权限管控所造成的安全风险,提高了Redis等非关系型数据库后台管理的安全性。
附图说明
图1为本发明数据库权限管理方法第一实施例的流程示意图;
图2为本发明数据库权限管理方法第二实施例的流程示意图;
图3为图2中在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系的步骤的细化流程示意图;
图4为本发明数据库权限管理方法第三实施例的流程示意图;
图5为本发明数据库权限管理方法第四实施例的流程示意图;
图6为本发明数据库权限管理系统第一实施例、第四实施例的功能模块示意图;
图7为本发明数据库权限管理系统第二实施例、第三实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本发明数据库权限管理方法第一实施例提供一种数据库权限管理方法,所述数据库权限管理方法包括:
步骤S10、获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表。
本发明利用第一数据库的权限管理功能,确定登录账户的管理权限,以此监控该登录账户基于第一数据库中外部表对第二数据库的管理操作,实现了对Redis等非关系型数据库的后台权限管理。
具体的,作为一种实施方式,用户可以使用预先配置的账户登录第一数据库,输入账户名和密码等登录凭证,发出登录请求。
其中,第一数据库为具有权限管理功能的关系型数据库,例如PostgreSQL数据库。
第一数据库中预先配置有外部表,外部表与第二数据库存在映射关系,也即,第二数据库中存储的数据会同步到外部表中,对外部表或外部表中数据的操作也会同步到第二数据库,从而使第二数据库以外部表的形式插入到第一数据库中。需要说明的是,第二数据库是Redis等非关系型数据库,不具有权限管理功能。
权限管理系统在收到登录请求时,获取登录请求携带的账户名和密码等登录凭证,进行验证。
若登录请求通过验证,则权限管理系统获取当前成功登录第一数据库的账户。
步骤S20、根据预先配置的管理权限信息,确定所述登录账户的管理权限。
在获取到成功登录第一数据库的登录账户后,根据预先配置的管理权限信息,确定当前登录账户的管理权限。
需要说明的是,第一数据库是通过角色来管理数据库访问权限的,其中每一个角色可以是一个数据库用户,也可以是一组数据库用户,每一个角色对应一个账户,每个角色的管理权限可根据实际需要灵活配置,包括读、写、删除、搜索等权限。
例如,登录账户名为dbatest,在检测该账户登录后,在预先配置的管理权限信息中,查找dbatest对应的管理权限,从而确定dbatest的管理权限。
步骤S30、判断所述登录账户对所述外部表的管理操作是否超出其管理权限。
在确定登录账户的管理权限后,权限管理系统监管该登录账户仅能在其管理权限范围内,通过第一数据库中外部表对第二数据库进行管理操作。
因此,在账户登录到第一数据库后,可以利用外部表实现对第二数据库库中数据的访问,并在该账户的管理权限范围内,对第二数据库进行管理操作。
具体的,登录账户可以运用SQL语法访问外部表,由于外部表与第二数据库的映射关系,因此,登录账户本质上是通过外部表来访问第二数据库。
由于用户看到的数据是第二数据库映射到外部表上的,因此,对用户来说,其当前正在访问第二数据库。
当用户输入管理操作请求时,权限管理系统判断此管理操作是否超出登录账户的管理权限范围。
步骤S40、若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作。
若检查到该管理操作在当前登录账户的管理权限范围内,则允许该管理操作。
具体的,根据管理操作对外部表进行数据处理,例如插入数据、删除数据、删除表等。
同时,需要基于外部表与第二数据库的映射关系,将外部表的变动同步更新到第二数据库,对第二数据库执行同样的管理操作。
例如,现有账户dbatest成功登录到第一数据库,权限管理系统在预先配置的管理权限信息中,查找到dbatest仅具有select(检索)的管理权限,那么dbatest通过外部表访问第二数据库的数据时,只被允许进行select操作。
在本实施中,获取成功登录第一数据库的登录账户,第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;然后,根据预先配置的管理权限信息,确定当前登录账户的管理权限,以对当前登录账户进行权限管控;然后,根据当前登录账户的管理权限,判断当前登录账户对外部表的管理操作是否超出其管理权限;若当前登录账户的管理操作未超出其管理权限,则允许此管理操作,并且基于外部表与第二数据库的映射关系,对第二数据库同步进行此管理操作,由于对第二数据库的管理操作是经过权限管控的,实现了对第二数据库的后台权限管理。本实施例通过预先在第一数据库中建立的与第二数据库存在映射关系的外部表,将第一数据库与第二数据库连接起来,实现了可以通过第一数据库访问第二数据库。当登录账户对第一数据库中的外部表进行管理操作时,由于外部表与第二数据库的映射关系,其本质上是对第二数据库进行管理操作的。因此,能够利用第一数据库的权限管理功能,根据登录账户在第一数据库中的管理权限,限制登录账户对外部表的管理操作,进而对应限制对第二数据库的管理操作,实现了对第二数据库的权限管理,由此,Redis等非关系型数据库可以作为第二数据库受到数据操作权限的管控,避免了数据库不能进行权限管控所造成的安全风险,提高了Redis等非关系型数据库后台管理的安全性。
进一步地,参照图2,本发明数据库权限管理方法第二实施例提供一种数据库权限管理方法,基于上述本发明数据库权限管理方法第一实施例,所述数据库权限管理方法还包括:
步骤S50、创建第一数据库实例,在所述第一数据库实例中创建第二数据库。
为了实现基于第一数据库远程访问第二数据库,首先,权限管理系统需要搭建好的第一数据库实例。例如,创建PostgreSQL实例。
本实施例中以第一数据库实例为PostgreSQL数据库实例进行举例说明。
然后,在PostgreSQL数据库实例中创建第二数据库,本实施例以第二数据库为Redis数据库进行举例说明。
步骤S60、为所述第二数据库创建外部服务,并授权给所述第一数据库使用。
在创建第二数据库后,权限管理系统需要建立第一数据库与第二数据库的链接。
首先,权限管理系统利用SQL语法的create extension语句创建扩展,安装Redis_fdw(foreign-data wrapper,外部数据封装)模块。
然后,权限管理系统利用SQL语法的create server语句创建Redis的外部服务,设置外部服务的Address(地址)和Port(端口)。需要说明的是,设置的外部服务的Address和Port与Redis数据库的Address和Port相同,从而能够与Redis数据库建立链接。
在完成外部服务的创建后,权限管理系统授权此外部服务给PostgreSQL数据库使用,使得PostgreSQL数据库能够与Redis数据库建立链接。
步骤S70、在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系。
在与Redis数据库建立链接后,权限管理系统在PostgreSQL数据库中创建外部表,将Redis数据库的数据映射到外部表中,建立外部表与Redis数据库的映射关系,实现了Redis数据库以外部表的形式插入到PostgreSQL数据库中。
此后,用户可以通过对外部表的查询、添加、删除等管理操作,实现对Redis数据库中的数据同步进行查询、添加、删除等管理操作。
进一步地,参照图3,作为一种实施方式,所述步骤S70包括:
步骤S71、根据所述第二数据库包含的数据类型,在所述第一数据库中分别创建对应的外部表;
步骤S72、基于所述外部服务将所述第二数据库中各类型的数据分别映射到对应的外部表中,建立所述外部表与所述第二数据库的映射关系。
在创建外部表时,权限管理系统可以根据Redis数据库中包含的数据类型,分别创建对应的外部表,例如字符、集合、列表等。
然后,权限管理系统基于Redis数据库的外部服务,将Redis数据库中的数据,根据数据类型分别映射到对应的外部表中,建立外部表与Redis数据库的映射关系,从而可以通过外部表访问Redis数据库中的各类型数据,进行管理操作。
由此,实现了数据的跨库操作。
进一步地,可以在一个第一数据库实例中创建多个第一数据库,各第一数据库分别对应不同的第二数据库,以实现对多个第二数据库的权限管理。
在本实施例中,首先,创建第一数据库实例,在第一数据库实例中创建第二数据库;然后,为第二数据库中创建外部服务,并授权给第一数据库使用,从而建立了第一数据库与第二数据库的链接;然后,在第一数据库中创建外部表,基于第二数据库的外部服务将第二数据库的数据映射到外部表中,建立外部表与第二数据库的映射关系,从而实现了第二数据库以外部表的形式插入第一数据库,进而能够实现通过第一数据库中的外部表访问第二数据库。本实施例通过在第一数据库中创建外部表,实现了第一数据库和第二数据库的跨库操作,从而能够基于第一数据库的权限管理,实现对第二数据库的权限管控。
进一步地,参照图4,本发明数据库权限管理方法第三实施例提供一种数据库权限管理方法,基于上述本发明数据库权限管理方法第二实施例,所述数据库权限管理方法还包括:
步骤S80、若收到输入的账户创建指令,则根据所述账户创建指令,在所述第一数据库中创建对应的账户并配置其管理权限。
在权限管理系统创建外部表后,用户可以根据需求配置用户账户及对应的管理权限。
权限管理系统在收到用户输入的账户创建指令后,根据账户创建指令携带的账户名,在第一数据库中创建对应的账户;并且,根据账户创建指令携带的权限信息,对应配置此账户的管理权限。
其中,账户的管理权限包括搜索、插入、创建、删除、修改、更新等等。
此后,用户可以使用创建的账户登录第一数据库,并基于账户的管理权限,通过第一数据库中的外部表,对第二数据库的数据进行管理操作。
在本实施例中,若收到输入的账户创建指令,则根据账户创建指令,在第一数据库中创建对应的账户并配置其管理权限,由此,用户可以根据需求创建不同角色的用户账户及管理权限,以通过第一数据库的权限管理和外部表,使得需求不同的角色可以在其管理权限范围内对第二数据库中的数据进行管理操作。
进一步地,参照图5,本发明数据库权限管理方法第四实施例提供一种数据库权限管理方法,基于上述本发明数据库权限管理方法第一实施例、第二实施例或第三实施例(本实施例以本发明数据库权限管理方法第一实施例为例),所述数据库权限管理方法还包括:
步骤S90、若所述登录账户的管理操作超出其管理权限,则拒绝所述管理操作。
若检查到登录账户的管理操作超出其管理权限范围,则拒绝该管理操作,实现对超权限操作的管控。进一步地,还可以进行错误提示。
例如,现有账户dbatest成功登录到第一数据库,权限管理系统在预先配置的管理权限信息中,查找到dbatest仅具有select(检索)的管理权限,当dbatest进行update(更改)、delect(删除)、insert(插入)等操作时,则会被权限管理系统拒绝,收到permissiondenied(权限拒绝)的错误提示。
以此,实现对第二数据库的后台权限管理。
在本实施例中,若登录账户的管理操作超出其管理权限,则拒绝此管理操作,实现对超权限操作的管控。
参照图6,本发明数据库权限管理系统第一实施例提供一种数据库权限管理系统,所述数据库权限管理系统包括:
获取模块10,用于获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表。
本发明利用第一数据库的权限管理功能,确定登录账户的管理权限,以此监控该登录账户通过第一数据库中外部表对第二数据库的管理操作,实现了对Redis等非关系型数据库的后台权限管理。
具体的,作为一种实施方式,用户可以使用预先配置的账户登录第一数据库,输入账户名和密码等登录凭证,发出登录请求。其中,第一数据库为具有权限管理功能的关系型数据库,例如PostgreSQL数据库。
第一数据库中预先配置有外部表,外部表与第二数据库存在映射关系,也即,第二数据库中存储的数据会同步到外部表中,对外部表或外部表中数据的操作也会同步到第二数据库,从而使第二数据库以外部表的形式插入到第一数据库中。需要说明的是,第二数据库是Redis等非关系型数据库,不具有权限管理功能。
获取模块10在收到登录请求时,获取登录请求携带的账户名和密码等登录凭证,进行验证。
若登录请求通过验证,则获取模块10获取当前成功登录第一数据库的账户。
权限模块20,用于根据预先配置的管理权限信息,确定所述登录账户的管理权限。
在获取到成功登录第一数据库的登录账户后,权限模块20根据预先配置的管理权限信息,确定当前登录账户的管理权限。
需要说明的是,第一数据库是通过角色来管理数据库访问权限的,其中每一个角色可以是一个数据库用户,也可以是一组数据库用户,每一个角色对应一个账户,每个角色的管理权限可根据实际需要灵活配置,包括读、写、删除、搜索等权限。
例如,登录账户名为dbatest,在检测该账户登录后,权限模块20在预先配置的管理权限信息中,查找dbatest对应的管理权限,从而确定dbatest的管理权限。
判断模块30,用于判断所述登录账户对所述外部表的管理操作是否超出其管理权限。
在确定登录账户的管理权限后,判断模块30根据登录账户的管理权限监管该登录账户仅能在其管理权限范围内,通过第一数据库中外部表对第二数据库进行管理操作。
因此,在账户登录到第一数据库后,可以利用外部表实现对第二数据库中数据的访问,并在该账户的管理权限范围内,对第二数据库进行管理操作。
具体的,登录账户可以运用SQL语法访问外部表,由于外部表与第二数据库的映射关系,因此,登录账户其本质上是通过外部表来访问第二数据库。
由于用户看到的数据是第二数据库映射到外部表上的,因此,对用户来说,其当前正在访问第二数据库。
当用户输入管理操作请求时,判断模块30判断此管理操作是否超出登录账户的管理权限范围。
同步模块40,用于若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作
若检查到该管理操作在当前登录账户的管理权限范围内,则同步模块40允许该管理操作。
具体的,同步模块40根据管理操作对外部表进行数据处理,例如插入数据、删除数据、删除表等。
同时,同步模块40需要基于外部表与第二数据库的映射关系,将外部表的变动同步更新到第二数据库,对第二数据库执行同样的管理操作。
例如,现有账户dbatest成功登录到第一数据库,权限模块20在预先配置的管理权限信息中,查找到dbatest仅具有select(检索)的管理权限,那么dbatest通过外部表访问第二数据库的数据时,只被允许进行select操作。
在本实施中,获取模块10获取成功登录第一数据库的登录账户,第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;然后,权限模块20根据预先配置的管理权限信息,确定当前登录账户的管理权限,以对当前登录账户进行权限管控;然后,判断模块30根据当前登录账户的管理权限,判断当前登录账户对外部表的管理操作是否超出其管理权限;若当前登录账户的管理操作未超出其管理权限,则同步模块40允许此管理操作,并且基于外部表与第二数据库的映射关系,对第二数据库同步进行此管理操作,由于对第二数据库的管理操作是经过权限管控的,实现了对第二数据库的后台权限管理。本实施例通过预先在第一数据库中建立的与第二数据库存在映射关系的外部表,将第一数据库与第二数据库连接起来,实现了可以通过第一数据库访问第二数据库。当登录账户对第一数据库中的外部表进行管理操作时,由于外部表与第二数据库的映射关系,其本质上是对第二数据库进行管理操作的。因此,能够利用第一数据库的权限管理功能,根据登录账户在第一数据库中的管理权限,限制登录账户对外部表的管理操作,进而对应限制对第二数据库的管理操作,实现了对第二数据库的权限管理,由此,Redis等非关系型数据库可以作为第二数据库受到数据操作权限的管控,避免了数据库不能进行权限管控所造成的安全风险,提高了Redis等非关系型数据库后台管理的安全性。
进一步地,参照图7,本发明数据库权限管理系统第二实施例提供一种数据库权限管理系统,基于上述数据库权限管理系统第一实施例,所述数据库权限管理系统还包括:
创建模块50,用于创建第一数据库实例,在所述第一数据库实例中创建第二数据库;为所述第二数据库创建外部服务,并授权给所述第一数据库使用;在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系。
为了实现基于第一数据库远程访问第二数据库,首先,创建模块50需要搭建好的第一数据库实例。例如,创建PostgreSQL实例。
本实施例中以第一数据库实例为PostgreSQL数据库实例进行举例说明。
然后,创建模块50在PostgreSQL数据库实例中创建第二数据库,本实施例以第二数据库为Redis数据库进行举例说明。
在创建第二数据库后,创建模块50需要建立第一数据库与第二数据库的链接。
首先,创建模块50利用SQL语法的create extension语句创建扩展,安装Redis_fdw(foreign-data wrapper,外部数据封装)模块。
然后,创建模块50利用SQL语法的create server语句创建Redis的外部服务,设置外部服务的Address(地址)和Port(端口)。需要说明的是,设置的外部服务的Address和Port与Redis数据库的Address和Port相同,从而能够与Redis数据库建立链接。
在完成外部服务的创建后,创建模块50授权此外部服务给PostgreSQL数据库使用,使得PostgreSQL数据库能够与Redis数据库建立链接。
在与Redis数据库建立链接后,创建模块50在PostgreSQL数据库中创建外部表,将Redis数据库的数据映射到外部表中建立外部表与Redis数据库的映射关系,实现了Redis数据库以外部表的形式插入到PostgreSQL数据库中。
此后,用户可以通过对外部表的查询、添加、删除等管理操作,实现对Redis数据库中的数据同步进行查询、添加、删除等管理操作。
进一步地,作为一种实施方式,所述创建模块50还用于,
根据所述第二数据库包含的数据类型,在所述第一数据库中分别创建对应的外部表;基于所述外部服务将所述第二数据库中各类型的数据分别映射到对应的外部表中,建立所述外部表与所述第二数据库的映射关系。
在创建外部表时,创建模块50可以根据Redis数据库中包含的数据类型,分别创建对应的外部表,例如字符、集合、列表等。
然后,创建模块50基于Redis数据库的外部服务,将Redis数据库中的数据,根据数据类型分别映射到对应的外部表中,建立外部表与Redis数据库的映射关系,从而可以通过外部表访问Redis数据库中的各类型数据,进行管理操作。
由此,实现了数据的跨库操作。
进一步地,可以在一个第一数据库实例中创建多个第一数据库,各第一数据库分别对应不同的第二数据库,以实现对多个第二数据库的权限管理。
在本实施例中,首先,创建模块50创建第一数据库实例,在第一数据库实例中创建第二数据库;然后,创建模块50为第二数据库中创建外部服务,并授权给第一数据库使用,从而建立了第一数据库与第二数据库的链接;然后,创建模块50在第一数据库中创建外部表,基于第二数据库的外部服务将第二数据库的数据映射到外部表中,建立外部表与第二数据库的映射关系,从而实现了第二数据库以外部表的形式插入第一数据库,进而能够实现通过第一数据库中的外部表访问第二数据库。本实施例通过在第一数据库中创建外部表,实现了第一数据库和第二数据库的跨库操作,从而能够基于第一数据库的权限管理,实现对第二数据库的权限管控。
进一步地,参照图7,本发明数据库权限管理系统第三实施例提供一种数据库权限管理系统,基于上述本发明数据库权限管理系统第二实施例,所述创建模块50还用于,
若收到输入的账户创建指令,则根据所述账户创建指令,在所述第一数据库中创建对应的账户并配置其管理权限。
在创建模块50创建外部表后,用户可以根据需求配置用户账户及对应的管理权限。
创建模块50在收到用户输入的账户创建指令后,根据账户创建指令携带的账户名,在第一数据库中创建对应的账户;并且,创建模块50根据账户创建指令携带的权限信息,对应配置此账户的管理权限。
其中,账户的管理权限包括搜索、插入、创建、删除、修改、更新等等。
此后,用户可以使用创建的账户登录第一数据库,并基于账户的管理权限,通过第一数据库中的外部表,对第二数据库的数据进行管理操作。
在本实施例中,若收到输入的账户创建指令,则创建模块50根据账户创建指令,在第一数据库中创建对应的账户并配置其管理权限,由此,用户可以根据需求创建不同角色的用户账户及管理权限,以通过第一数据库的权限管理和外部表,使得需求不同的角色可以在其管理权限范围内对第二数据库中的数据进行管理操作。
进一步地,参照图6,本发明数据库权限管理系统第四实施例提供一种数据库权限管理系统,基于上述本发明数据库权限管理系统第一实施例、第二实施例或第三实施例(本实施例以本发明数据库权限管理系统第一实施例为例),所述判断模块30还用于,
若所述登录账户的管理操作超出其管理权限,则拒绝所述管理操作。
若检查到登录账户的管理操作超出其管理权限范围,则判断模块30拒绝该管理操作,实现对超权限操作的管控。进一步地,还可以进行错误提示。
例如,现有账户dbatest成功登录到第一数据库,权限模块20在预先配置的管理权限信息中,查找到dbatest仅具有select(检索)的管理权限,当dbatest进行update(更改)、delect(删除)、insert(插入)等操作时,则会被判断模块30拒绝,收到permission denied(权限拒绝)的错误提示。
以此,实现对第二数据库的后台权限管理。
在本实施例中,若登录账户的管理操作超出其管理权限,则判断模块30拒绝此管理操作,实现对超权限操作的管控。
以上仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据库权限管理方法,其特征在于,所述数据库权限管理方法包括以下步骤:
获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;
根据预先配置的管理权限信息,确定所述登录账户的管理权限;
判断所述登录账户对所述外部表的管理操作是否超出其管理权限;
若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作;
其中,所述预先配置有与第二数据库为映射关系的外部表,包括:
将第二数据库中存储的数据同步到外部表中,对外部表或外部表中数据的操作同步到第二数据库,以使所述第二数据库以所述外部表的形式插入到所述第一数据库中,所述第二数据库是不具有权限管理功能的非关系型数据库。
2.如权利要求1所述的数据库权限管理方法,其特征在于,所述数据库权限管理方法还包括:
创建第一数据库实例,在所述第一数据库实例中创建第二数据库;
为所述第二数据库创建外部服务,并授权给所述第一数据库使用;
在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系。
3.如权利要求2所述的数据库权限管理方法,其特征在于,所述在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系的步骤包括:
根据所述第二数据库包含的数据类型,在所述第一数据库中分别创建对应的外部表;
基于所述外部服务将所述第二数据库中各类型的数据分别映射到对应的外部表中,建立所述外部表与所述第二数据库的映射关系。
4.如权利要求2或3所述的数据库权限管理方法,其特征在于,所述数据库权限管理方法还包括:
若收到输入的账户创建指令,则根据所述账户创建指令,在所述第一数据库中创建对应的账户并配置其管理权限。
5.如权利要求1、2或3所述的数据库权限管理方法,其特征在于,所述判断所述登录账户对所述外部表的管理操作是否超出其管理权限的步骤之后,还包括:
若所述登录账户的管理操作超出其管理权限,则拒绝所述管理操作。
6.一种数据库权限管理系统,其特征在于,所述数据库权限管理系统包括:
获取模块,用于获取成功登录第一数据库的登录账户,所述第一数据库为具有权限管理的关系型数据库,预先配置有与第二数据库为映射关系的外部表;
权限模块,用于根据预先配置的管理权限信息,确定所述登录账户的管理权限;
判断模块,用于判断所述登录账户对所述外部表的管理操作是否超出其管理权限;
同步模块,用于若所述登录账户的管理操作未超出其管理权限,则允许所述管理操作,并基于所述外部表与第二数据库的映射关系,对所述第二数据库同步所述管理操作;
其中,所述获取模块,还用于将第二数据库中存储的数据同步到外部表中,对外部表或外部表中数据的操作同步到第二数据库,以使所述第二数据库以所述外部表的形式插入到所述第一数据库中,所述第二数据库是不具有权限管理功能的非关系型数据库。
7.如权利要求6所述的数据库权限管理系统,其特征在于,所述数据库权限管理系统还包括:
创建模块,用于创建第一数据库实例,在所述第一数据库实例中创建第二数据库;为所述第二数据库创建外部服务,并授权给所述第一数据库使用;在所述第一数据库中创建外部表,基于所述外部服务将所述第二数据库中的数据映射到所述外部表中,建立所述外部表与所述第二数据库的映射关系。
8.如权利要求7所述的数据库权限管理系统,其特征在于,所述创建模块还用于,
根据所述第二数据库包含的数据类型,在所述第一数据库中分别创建对应的外部表;基于所述外部服务将所述第二数据库中各类型的数据分别映射到对应的外部表中,建立所述外部表与所述第二数据库的映射关系。
9.如权利要求7或8所述的数据库权限管理系统,其特征在于,所述创建模块还用于,
若收到输入的账户创建指令,则根据所述账户创建指令,在所述第一数据库中创建对应的账户并配置其管理权限。
10.如权利要求6、7或8所述的数据库权限管理系统,其特征在于,所述判断模块还用于,
若所述登录账户的管理操作超出其管理权限,则拒绝所述管理操作。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710211546.5A CN107689949B (zh) | 2017-03-31 | 2017-03-31 | 数据库权限管理方法和系统 |
SG11201810377QA SG11201810377QA (en) | 2017-03-31 | 2017-11-23 | Method, system, and device for managing database permissions, and computer-readable storage medium |
PCT/CN2017/112653 WO2018176864A1 (zh) | 2017-03-31 | 2017-11-23 | 数据库权限管理方法、系统、设备和计算机可读存储介质 |
US16/318,931 US11455415B2 (en) | 2017-03-31 | 2017-11-23 | Method, system, and device for managing database permissions, and computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710211546.5A CN107689949B (zh) | 2017-03-31 | 2017-03-31 | 数据库权限管理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107689949A CN107689949A (zh) | 2018-02-13 |
CN107689949B true CN107689949B (zh) | 2020-03-17 |
Family
ID=61152580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710211546.5A Active CN107689949B (zh) | 2017-03-31 | 2017-03-31 | 数据库权限管理方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11455415B2 (zh) |
CN (1) | CN107689949B (zh) |
SG (1) | SG11201810377QA (zh) |
WO (1) | WO2018176864A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109151386A (zh) * | 2018-08-26 | 2019-01-04 | 俞绍富 | 基于视频资源安全网关的视频监控管理系统 |
CN109408593A (zh) * | 2018-10-16 | 2019-03-01 | 国家电网有限公司 | 一种数据库管理系统、装置及方法 |
CN111723146B (zh) * | 2019-03-18 | 2024-06-14 | 北京沃东天骏信息技术有限公司 | 监测数据库的方法、管理系统及存储介质 |
CN113127909B (zh) * | 2021-04-30 | 2023-07-25 | 北京奇艺世纪科技有限公司 | 一种特征数据处理方法、装置、电子设备及存储介质 |
CN113591126B (zh) * | 2021-08-12 | 2023-02-07 | 北京滴普科技有限公司 | 一种数据权限处理方法及计算机可读存储介质 |
CN114637977A (zh) * | 2022-01-26 | 2022-06-17 | 安徽点亮网络技术有限公司 | 一种基于指静脉验证的账户权限管理方法、系统及装置 |
CN115037501B (zh) * | 2022-04-11 | 2024-06-28 | 深圳市华宜致信科技有限公司 | 一种bi工具的权限管理系统及方法 |
CN118153010A (zh) * | 2022-12-05 | 2024-06-07 | 顺丰科技有限公司 | 系统操作许可方法、装置、终端设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147146A (zh) * | 2005-03-31 | 2008-03-19 | 瑞士银行股份有限公司 | 根据/利用第一数据库构建、同步和/或操作第二数据库的计算机网络及过程 |
CN102129539A (zh) * | 2011-03-11 | 2011-07-20 | 清华大学 | 基于访问控制列表的数据资源权限管理方法 |
CN102308297A (zh) * | 2011-07-13 | 2012-01-04 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN102982130A (zh) * | 2012-11-16 | 2013-03-20 | 深圳市融创天下科技股份有限公司 | 一种nosql与rdbms的数据库同步方法和系统 |
CN103530568A (zh) * | 2012-07-02 | 2014-01-22 | 阿里巴巴集团控股有限公司 | 权限控制方法、装置及系统 |
CN104317921A (zh) * | 2014-10-29 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步系统及方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6999956B2 (en) | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US7440962B1 (en) * | 2001-02-28 | 2008-10-21 | Oracle International Corporation | Method and system for management of access information |
CN102034036A (zh) | 2010-09-07 | 2011-04-27 | 北京握奇数据系统有限公司 | 权限管理的方法及设备 |
US9172678B2 (en) * | 2011-06-28 | 2015-10-27 | At&T Intellectual Property I, L.P. | Methods and apparatus to improve security of a virtual private mobile network |
CN102426611B (zh) | 2012-01-13 | 2013-09-04 | 广州从兴电子开发有限公司 | 一种数据库同步方法及装置 |
CN102708316B (zh) | 2012-04-19 | 2015-04-08 | 北京华胜天成科技股份有限公司 | 一种用于多租户架构中数据隔离的方法 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及系统 |
US10430437B2 (en) * | 2017-02-08 | 2019-10-01 | Bank Of America Corporation | Automated archival partitioning and synchronization on heterogeneous data systems |
-
2017
- 2017-03-31 CN CN201710211546.5A patent/CN107689949B/zh active Active
- 2017-11-23 SG SG11201810377QA patent/SG11201810377QA/en unknown
- 2017-11-23 US US16/318,931 patent/US11455415B2/en active Active
- 2017-11-23 WO PCT/CN2017/112653 patent/WO2018176864A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147146A (zh) * | 2005-03-31 | 2008-03-19 | 瑞士银行股份有限公司 | 根据/利用第一数据库构建、同步和/或操作第二数据库的计算机网络及过程 |
CN102129539A (zh) * | 2011-03-11 | 2011-07-20 | 清华大学 | 基于访问控制列表的数据资源权限管理方法 |
CN102308297A (zh) * | 2011-07-13 | 2012-01-04 | 华为技术有限公司 | 一种数据迁移方法、数据迁移装置及数据迁移系统 |
CN103530568A (zh) * | 2012-07-02 | 2014-01-22 | 阿里巴巴集团控股有限公司 | 权限控制方法、装置及系统 |
CN102982130A (zh) * | 2012-11-16 | 2013-03-20 | 深圳市融创天下科技股份有限公司 | 一种nosql与rdbms的数据库同步方法和系统 |
CN104317921A (zh) * | 2014-10-29 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
SG11201810377QA (en) | 2018-12-28 |
US20190236304A1 (en) | 2019-08-01 |
US11455415B2 (en) | 2022-09-27 |
WO2018176864A1 (zh) | 2018-10-04 |
CN107689949A (zh) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689949B (zh) | 数据库权限管理方法和系统 | |
US11068449B2 (en) | Data migration method, apparatus, and storage medium | |
US9122644B2 (en) | Common users, common roles, and commonly granted privileges and roles in container databases | |
CN110290112B (zh) | 权限控制方法、装置、计算机设备及存储介质 | |
US8578460B2 (en) | Automating cloud service reconnections | |
WO2020147605A1 (zh) | 在线诊断平台、其权限管理方法及权限管理系统 | |
US10360203B2 (en) | Systems and methods for generating and implementing database audit functionality across multiple platforms | |
WO2019119322A1 (zh) | 检测系统、方法及相关装置 | |
CN106487744A (zh) | 一种基于Redis存储的Shiro验证方法 | |
CN102843256B (zh) | 一种基于轻型目录访问协议(ldap)的it系统管理方法 | |
CN101639776A (zh) | 一种数据库访问和集成方法及其系统 | |
CN104731951A (zh) | 一种数据查询方法及装置 | |
US20170270287A1 (en) | Methods and apparatus for using credentials to access computing resources | |
US20020055921A1 (en) | Multi-database system | |
US20170063862A1 (en) | System and method for authentication | |
CN114172700A (zh) | 基于云平台结合域控服务器的统一认证系统及方法 | |
CN111291360A (zh) | 基于服务治理的大数据权限管理方法及系统 | |
CN104537317A (zh) | 租户对自定义数据库访问的控制方法、装置和系统 | |
CN112613075A (zh) | 权限的确定方法及装置、存储介质及电子装置 | |
CN105407161A (zh) | 应用服务管理方法、系统及应用服务发现方法、系统 | |
CN113239372A (zh) | 数据库访问控制方法及系统 | |
CN116070294B (zh) | 一种权限管理方法、系统、装置、服务器及存储介质 | |
WO2015150792A1 (en) | An improved database access control method and system | |
CN114915500B (zh) | 基于pc桌面客户端的自媒体账号管理方法及装置 | |
CN105956154A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1249306 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |