CN114329371A - 数据库用户权限管理模块 - Google Patents
数据库用户权限管理模块 Download PDFInfo
- Publication number
- CN114329371A CN114329371A CN202111660580.3A CN202111660580A CN114329371A CN 114329371 A CN114329371 A CN 114329371A CN 202111660580 A CN202111660580 A CN 202111660580A CN 114329371 A CN114329371 A CN 114329371A
- Authority
- CN
- China
- Prior art keywords
- user
- authority
- function
- list
- super
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了数据库用户权限管理模块,包括切换普通用户权限函数、切换超级用户权限函数、切换回原用户函数、授权普通用户权限切换函数、授权超级用户权限切换函数、取消普通用户权限切换函数、取消超级用户权限切换函数和打印用户权限列表函数。本发明通过引入定制化的用户操作权限管理操作扩展,增强了数据库用户权限管理能力,使经过管理员配置后能够在当前用户进行权限升级,从而使当前用户临时拥有其他用户才拥有的部分权限,不需要单独为所有普通用户配置执行权限;而普通用户不再需要单独记忆目标用户的密钥且无法再通过密钥登陆目标用户,需要转换为目标用户权限需要向管理员进行申请,管理员能更好掌握所有用户的权限管理。
Description
技术领域
本发明涉及数据库系统用户管理,主要涉及数据库用户权限管理,通过插件动态载入数据库。
背景技术
在当前信息时代的背景下,数据库系统作为一种信息管理技术在各个行业得到了广泛的实践应用。伴随着计算机视觉、大数据分析、人工智能技术的发展,数据库作为互联网信息数据的载体,受到越来越多的关注,如何搭建高效、安全、稳定的数据库系统,是各大互联网厂商不断探索发展的重要技术方向。
相比于Oracle等闭源数据库,开源数据库有着能够用户自定义功能的优势,对于特定使用者需求,开源数据库都提供了开发接口能够使开发者进行二次开发,可扩展的能力使得开源数据库能够适用于各种应用场景。PostgreSQL便是开源数据库中的佼佼者,其操作由目录驱动,是一个对象-关系型数据库,在同一个数据库系统中提供关系结构和面向对象的结构,可以与任何类型的代码库集成。PostgreSQL允许开发者在数据库中实际编写脚本和代码,相关功能模块可以通过触发器触发或重写由数据库提供的hook函数接口,将开发者自定义功能集成于数据库语句解析、优化、执行流程,从而实现用户自定义功能。同时,此类自定义功能函数以插件形式动态载入PostgreSQL数据库,不会污染数据库源代码,当插件功能存在问题时可随时进行卸载,恢复数据库使用。
传统开源数据库系统对用户操作权限管理属于粗粒度管理,常见功能包括但不限于简单的管理员角色与普通用户划分、用户登入密码设置、用户有效时间设置等,无法满足用户操作权限自定义化的细粒度管理需求,且用户之间的数据表独立。如果需要进行用户之间的转换,需要当前用户记得目标用户的密钥,加重了数据库用户使用负担,且管理员无法阻止用户密钥的外泄可能造成的严重隐患。
发明内容
本发明针对现有技术的不足,提供一种数据库用户权限管理模块,解决传统开源数据库系统对用户操作权限的粗粒度管理问题。
本发明数据库用户权限管理模块,维护一份普通用户权限转换列表以及一份超级用户权限转换列表,由管理员赋予用户调用权限升级函数的能力,实现用户的权限升级;具体包括切换普通用户权限函数setUser、切换超级用户权限函数setSuperuser、切换回原用户函数resetUser、授权普通用户权限切换函数addUserAllowlist、授权超级用户权限切换函数addSuperuserAllowlist、取消普通用户权限切换函数delUserAllowlist、取消超级用户权限切换函数delSuperuserAllowlist和打印用户权限列表函数showAllowlist。
优选地,所述的切换普通用户权限函数setUser功能如下:首先获取原用户名称,结合传入的用户名称,在普通用户权限列表中查询是否匹配,若匹配成功则保存原用户名称、对象ID以及内存上下文环境,完成原用户数据保存后将当前用户转变为传入的普通用户。
优选地,所述的切换超级用户权限函数setSuperuser功能如下:通过传入的超级用户名称,并获取原用户名称,在超级用户权限列表中查询该用户是否有升级权限,匹配成功则在保留原用户数据后将当前用户转变为超级用户,并根据超级用户权限列表中的系统配置使能参数决定用户升级后是否能够对数据库系统参数进行修改。
优选地,所述的切换回原用户函数resetUser功能如下:通过全局变量保存的原用户名称、对象ID以及内存上下文环境,转变当前用户为原用户。
优选地,所述的授权普通用户权限切换函数addUserAllowlist功能如下:接收传入的原用户列表和目标用户名称,检查用户对合法性以及用户对是否已在扩展维护的普通用户权限列表中,若用户对合法且尚不存在普通用户权限列表中,则添入普通用户权限列表,该函数仅管理员有权限执行。
优选地,所述的授权超级用户权限切换函数addSuperuserAllowlist功能如下:函数接收传入的原用户列表和目标超级用户名称,检查用户对合法性以及用户对是否已在扩展维护的超级用户权限列表中,若用户对合法且尚不存在超级用户权限列表中,则添入超级用户权限列表,该函数仅管理员有权限执行。
优选地,所述的取消普通用户权限切换函数delUserAllowlist功能如下:取消传入的原用户列表与目标用户之间的权限升级,将用户对从普通用户权限列表中移除。
优选地,所述的取消超级用户权限切换函数delSuperuserAllowlist功能如下:取消传入的原用户列表与目标超级用户之间的权限升级,将用户对从超级用户权限列表中移除。
优选地,所述的打印用户权限列表函数showAllowlist功能如下:根据传入参数listName确定管理员想要打印的是普通用户权限列表还是超级用户权限列表,根据传入的用户名列表userNames确定管理员想查询的用户名称,若该参数缺省,则表示打印整个权限列表。
本发明具有的有益效果如下:
本发明通过引入定制化的用户操作权限管理操作扩展,辅助增强了数据库用户权限管理能力,使得在经过管理员配置后能够在当前用户进行权限升级,从而使当前用户临时拥有其他用户才拥有的部分权限,如部分数据表的读写权限、审计日志查阅权限等。该扩展插件能够使得管理员只需关注于指定用户的数据库操作权限进行管理配置,赋予其他用户升级至该指定用户权限的能力就能够进行统一的权限管理,不需要单独为所有普通用户配置执行权限。而普通用户将不再需要单独记忆目标用户的密钥且无法再通过密钥登陆目标用户,需要转换为目标用户权限需要向管理员进行申请,管理员能够更好地掌握所有用户的权限管理。
附图说明
图1为本发明中普通用户权限升级流程图;
图2为本发明中普通用户权限列表更新流程图。
具体实施方式
下面结合附图对本发明做进一步说明。
本发明为了增强数据库用户权限管理,通过扩展插件的形式将数据库用户权限管理模块动态载入数据库系统。
本发明数据库用户管理权限管理模块使用C语言进行编写。该功能模块辅助增强了数据库用户权限管理,使得在经过管理员配置后能够在当前用户进行权限升级,从而临时拥有其他用户才拥有的部分权限,如部分数据表的读写权限、审计日志查阅权限等。该扩展插件能够使得管理员只需关注于指定用户的数据库操作权限进行管理配置,赋予其他用户升级至该指定用户权限的能力就能够进行统一的权限管理,不需要单独为所有普通用户配置执行权限。
功能函数说明
本发明主要功能由以下八个函数实现,用户权限管理插件会维护一份普通用户权限转换列表以及一份超级用户权限转换列表,并由管理员赋予用户调用权限升级函数的能力,从而实现用户的权限升级,使得原用户能够执行必要的数据库维护任务。数据库用户权限管理模块函数功能划分见表1。
表1数据库用户权限管理模块函数功能划分
1)setUser
首先获取原用户名称,结合传入的用户名称,在扩展维护的普通用户权限列表中查询是否匹配,若匹配成功则表示原用户可进行权限升级,保存原用户名称、对象ID(ObjectID)以及内存上下文环境。完成原用户数据保存后将当前用户转变,此时当前用户拥有普通用户权限,并可执行原先不被允许的数据表查询等任务。普通用户权限升级流程图如图1所示。
2)setSuperuser
通过传入的超级用户名称,并获取原用户名称,在扩展插件维护的超级用户权限列表中查询该用户是否有升级权限。匹配成功则在保留原用户数据后将当前会话用户转变为超级用户,并根据超级用户权限列表中的系统配置使能参数决定用户升级后是否能够对数据库系统参数进行修改。超级用户在数据库系统中拥有极大的权限,由普通用户升级而获得超级用户的权限需要被谨慎对待。该普通用户是通过用户权限管理模块进行的权限提升,而不是真正的超级用户,在升级拥有超级用户权限之后,数据库需要对该用户的所有数据库操作进行审计记录,防止该用户做出恶意操作或执行不当操作影响数据库安全。
3)resetUser
通过全局变量保存的原用户名称、对象ID以及内存上下文环境,转变当前用户为原用户角色,此时当前用户不再拥有转换前对特定数据表查阅修改或者配置参数的权限。
4)addUserAllowlist
originUsers参数可包含多个用户名称,以分隔符进行区分。addUserAllowlist函数接收传入的原用户列表和目标用户名称,检查用户对(原用户和目标用户)合法性以及用户对是否已在扩展维护的普通用户权限列表中,若用户对合法且尚不存在普通用户权限列表中,则将其添入普通用户权限列表,该函数仅管理员有权限执行。普通用户权限列表结构如表2所示。普通用户权限列表更新流程如图2所示。
表2普通用户权限列表
5)addSuperuserAllowlist
originUsers参数可包含多个用户名称,以分隔符进行区分。函数接收传入的原用户列表和目标超级用户名称,检查用户对合法性以及用户对是否已在扩展维护的超级用户权限列表中,若用户对合法且尚不存在超级用户权限列表中,则将其添入超级用户权限列表,该函数仅管理员有权限执行。超级用户权限列表结构如表3所示。
表3超级用户权限列表
6)delUserAllowlist
取消传入的原用户列表与目标用户之间的权限升级,将用户对从普通用户权限列表中移除。
7)delSuperAllowlist
取消传入的原用户列表与目标超级用户之间的权限升级,将用户对从超级用户权限列表中移除。
8)showAllowlist
根据传入参数listName确定管理员想要打印的是普通用户权限列表还是超级用户权限列表,根据传入的用户名列表userNames确定管理员想查询的用户名称,若该参数缺省,则表示打印整个权限列表。该函数方便管理员进行用户权限转换的管理,使管理员了解目前用户之间的角色转换关系。
使用说明
在PostgreSQL数据库的共享预加载库(sharedpreloadlibraries)中完成装载,并在postgresql.conf文件中完成配置后重新启动数据库。使用管理员用户登录PostgreSQL数据库后,调用扩展生成命令将数据库用户权限管理插件模块动态载入数据库系统中。
在管理员用户下使用addUserAllowlist和addSuperAllowlist函数命令配置用户权限切换列表,并执行GRANT EXECUTE ON FUNCTION语句使得普通用户能够调用setUser、resetUser和setSuperuser函数来进行用户权限的变更。完成配置后被授权的普通用户能够调用函数来改变当前用户角色,拥有特定角色的权限,从而在不需要输入用户密码的情况下进行角色转换,访问特殊数据表或进行必要的数据库系统参数配置。
本发明使得数据库管理员可以在完成对功能用户的各类数据表访问权限、参数配置权限完成自定义化设置后,赋予低权限普通用户群升级为功能用户的能力,从而避免单独为每一个普通用户设置限制或开放部分权限,使得管理员能够更好地专注于整个数据库系统的功能划分与用户管理。并且管理员能够随时通过权限列表打印函数了解目前各个用户之间的权限转换关系,随时赋予或卸载用户的权限转换能力。
Claims (9)
1.数据库用户权限管理模块,维护一份普通用户权限转换列表以及一份超级用户权限转换列表,其特征在于:由管理员赋予用户调用权限升级函数的能力,实现用户的权限升级;具体包括切换普通用户权限函数setUser、切换超级用户权限函数setSuperuser、切换回原用户函数resetUser、授权普通用户权限切换函数addUserAllowlist、授权超级用户权限切换函数addSuperuserAllowlist、取消普通用户权限切换函数delUserAllowlist、取消超级用户权限切换函数delSuperuserAllowlist和打印用户权限列表函数showAllowlist。
2.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的切换普通用户权限函数setUser功能如下:首先获取原用户名称,结合传入的用户名称,在普通用户权限列表中查询是否匹配,若匹配成功则保存原用户名称、对象ID以及内存上下文环境,完成原用户数据保存后将当前用户转变为传入的普通用户。
3.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的切换超级用户权限函数setSuperuser功能如下:通过传入的超级用户名称,并获取原用户名称,在超级用户权限列表中查询该用户是否有升级权限,匹配成功则在保留原用户数据后将当前用户转变为超级用户,并根据超级用户权限列表中的系统配置使能参数决定用户升级后是否能够对数据库系统参数进行修改。
4.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的切换回原用户函数resetUser功能如下:通过全局变量保存的原用户名称、对象ID以及内存上下文环境,转变当前用户为原用户。
5.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的授权普通用户权限切换函数addUserAllowlist功能如下:接收传入的原用户列表和目标用户名称,检查用户对合法性以及用户对是否已在扩展维护的普通用户权限列表中,若用户对合法且尚不存在普通用户权限列表中,则添入普通用户权限列表,该函数仅管理员有权限执行。
6.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的授权超级用户权限切换函数addSuperuserAllowlist功能如下:函数接收传入的原用户列表和目标超级用户名称,检查用户对合法性以及用户对是否已在扩展维护的超级用户权限列表中,若用户对合法且尚不存在超级用户权限列表中,则添入超级用户权限列表,该函数仅管理员有权限执行。
7.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的取消普通用户权限切换函数delUserAllowlist功能如下:取消传入的原用户列表与目标用户之间的权限升级,将用户对从普通用户权限列表中移除。
8.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的取消超级用户权限切换函数delSuperuserAllowlist功能如下:取消传入的原用户列表与目标超级用户之间的权限升级,将用户对从超级用户权限列表中移除。
9.根据权利要求1所述的数据库用户权限管理模块,其特征在于:所述的打印用户权限列表函数showAllowlist功能如下:根据传入参数listName确定管理员想要打印的是普通用户权限列表还是超级用户权限列表,根据传入的用户名列表userNames确定管理员想查询的用户名称,若该参数缺省,则表示打印整个权限列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111660580.3A CN114329371B (zh) | 2021-12-31 | 2021-12-31 | 数据库用户权限管理模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111660580.3A CN114329371B (zh) | 2021-12-31 | 2021-12-31 | 数据库用户权限管理模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114329371A true CN114329371A (zh) | 2022-04-12 |
CN114329371B CN114329371B (zh) | 2023-10-13 |
Family
ID=81019043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111660580.3A Active CN114329371B (zh) | 2021-12-31 | 2021-12-31 | 数据库用户权限管理模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329371B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020497A (zh) * | 2011-09-20 | 2013-04-03 | 镇江金软计算机科技有限责任公司 | 基于rbac模型的临时授权系统 |
US20150026215A1 (en) * | 2013-07-18 | 2015-01-22 | Anil Goel | Autonomous role-based security for database management systems |
WO2017020744A1 (zh) * | 2015-08-06 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 数据库连接建立方法及装置 |
CN109697357A (zh) * | 2018-12-27 | 2019-04-30 | 珠海格力电器股份有限公司 | 可动态扩展的系统权限设置方法、管理系统 |
-
2021
- 2021-12-31 CN CN202111660580.3A patent/CN114329371B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020497A (zh) * | 2011-09-20 | 2013-04-03 | 镇江金软计算机科技有限责任公司 | 基于rbac模型的临时授权系统 |
US20150026215A1 (en) * | 2013-07-18 | 2015-01-22 | Anil Goel | Autonomous role-based security for database management systems |
WO2017020744A1 (zh) * | 2015-08-06 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 数据库连接建立方法及装置 |
CN109697357A (zh) * | 2018-12-27 | 2019-04-30 | 珠海格力电器股份有限公司 | 可动态扩展的系统权限设置方法、管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114329371B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11392586B2 (en) | Data protection method and device and storage medium | |
US5572673A (en) | Secure multi-level system for executing stored procedures | |
CN101196974B (zh) | 用于软件应用程序的自动配置的方法和系统 | |
US6131165A (en) | Permit for controlling access to services in protected memory systems | |
US8019784B2 (en) | Managing external routines in a database management system | |
US10089371B2 (en) | Extensible extract, transform and load (ETL) framework | |
Shockley | A9 implementing the Clark/Wilson integrity policy using current technology | |
CN114168930A (zh) | 一种Hive权限控制方法、装置、设备及可读存储介质 | |
CN107566375B (zh) | 访问控制方法和装置 | |
CN110162963B (zh) | 一种识别过权应用程序的方法 | |
CN114329371A (zh) | 数据库用户权限管理模块 | |
CN109409120B (zh) | 一种面向Spark的访问控制方法及系统 | |
CN117272351A (zh) | 一种操作系统用户权限管理方法及系统 | |
CN114896584B (zh) | 一种Hive数据权限控制代理层方法及系统 | |
CN112783573A (zh) | 多个自定义服务的SELinux策略配置系统及方法 | |
CN115718666A (zh) | 用于web服务的细粒度动态权限控制方法和系统 | |
CN113487770A (zh) | 管理多车辆授权的系统及方法 | |
Meena et al. | Efficiently Supporting Attribute-Based Access Control in Relational Databases | |
CN110443059B (zh) | 数据保护方法及装置 | |
Gligor | Architectural implications of abstract data type implementation | |
Zhang | Research on JAVA Mobile Application Development Framework based on Ant Colony Optimization | |
Ouyang et al. | A Java EE Data Persistence Layer Model Based on Multi Persistence Technology | |
CN118656874A (zh) | 一种数据库行列访问控制的实现方法和系统 | |
Hayden et al. | Oracle Database Administrator’s Reference, 10g Release 2 (10.2) for hp OpenVMS B25416-02 | |
CN113407612A (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 |