一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据表审计方法与流程

2022-04-02 04:09:37 来源:中国专利 TAG:
1.本发明属于数据审计
技术领域
:,具体涉及一种数据库系统的数据表审计方法,从开源数据库postgresql着手开发,通过扩展插件的形式将该安全维护辅助系统动态载入postgresql数据库,针对数据库中特定重要数据表进行安全维护日志记录,数据库系统会捕获用户对于这类表格进行的操作,并根据管理员配置参数将日志记录入审计表。
背景技术
::2.数据库是依照数据结构将大量数据组织、存储和管理的计算机软件系统。伴随着互联网技术的高速发展,大量数据随着日常网络使用而产生,由于数据库能够更加有效地组织数据、更高效地维护数据、更严密地保护数据以及更加合理地利用数据,政府机关、企业公司、个人组织等对数据库的使用愈来愈频繁,数据库技术发展越来越受到重视。3.开源数据库是其源代码随其应用程序一起发布的数据库,相比于闭源数据库,由于其开源特性,开发者能够全面了解数据库实现功能的方式。并且,绝大部分开源数据库都提供了api以及说明手册给开发者,使得开发者能够依照数据库系统设计,为数据库添加或更改自定义功能,令数据库能够适应自身业务开发需求。postgresql作为开源的对象-关系型数据库管理系统,支持大量主流开发语言,如c、c 、java等,且为开发者提供了丰富的接口,支持开发者编写自定义函数、触发器来增强或修改数据库功能。postgresql采用扩展插件的形式来将开发者编写的自定义功能动态载入数据库系统,这类插件与数据库源代码互相独立、互不干扰,使得开发者和用户能够明确插件带给数据库系统的功能改变,并且能够快速定位错误代码以及安装、卸载功能模块插件。4.数据表是数据库中具体存储数据的载体,是数据库安全维护中的重要一环,然而开源数据库系统一般只重视用户的操作管理以及行为日志记录,而往往会忽视数据表的审计,对于特定数据表,由于其自身特殊性和重要性,需要进行单独审计检测,并且为了与其他数据表的操作日志记录区分,需将其审计日志以另外形式单独存储。并且,一些用户数据库操作虽然并不具有恶意倾向,但仍可能存在不当操作。例如,医疗数据库中会存储患者就诊时间、诊断结果、医疗处方等一系列信息,医生等操作人员可能出现误操作行为,导致该相关数据表被错误录入或修改,由于这类数据表具有十分敏感的信息内容,因此,需要设置针对数据表的审计功能模块,辅助维护数据库信息安全以及内容回溯。技术实现要素:5.本发明的目的是针对现有技术的不足,提供一种数据表审计方法。6.本发明具体如下:通过扩展插件形式将数据表安全审计模块动态载入postgresql数据库系统,根据管理员配置的日志参数对重要数据表开启审计,并根据功能函数实现将任何针对重要数据表数据的添加、修改、删除操作都记录日志并存入特定审计表中;特定审计表含有审计状态信息列表记录各特定重要数据表的数据表名称、参数列表和审计状态信息;该特定审计表仅供管理员查阅。7.优选地,所述的日志参数包括当前操作的序列号seqid、事务发生的时间戳tstransaction、具体操作发生时间戳tsoperation、操作命令action、模式名称schema、被审计的特定重要数据表名称table和执行当前操作的会话用户名称user。8.优选地,所述的功能函数包括start函数、stop函数、pause函数、restart函数和status函数。9.start函数功能如下:通过传入特定重要数据表的数据表名称以及该数据表的参数列表,判断该数据表是否存在于审计状态信息列表,若该数据表处于审计暂停状态,则判断该数据表的参数列表中日志参数配置与该数据表对应特定审计表的信息参数列表中之前配置的日志参数设置是否相同,若相同,则调用restart函数重启对该数据表的审计,否则将该数据表的原触发器和原触发函数卸载,将原审计表添加时间戳后重新命名,并根据传入数据表名称开启新的审计;若该数据表未被审计过,则直接创建新的特定审计表并根据传入数据表名称开启新的审计;开启新的审计时,获取被执行操作的数据表的日志参数配置,并根据该数据表的参数列表为该数据表创建新触发器函数和新触发器,对该数据表进行的添加、修改、删除操作根据日志参数配置提取关键信息进行日志记录,并将数据表名称与该数据表的参数列表存储于审计状态信息列表。10.stop函数功能如下:通过传入特定重要数据表的数据表名称,查询审计状态信息列表,若特定重要数据表处于停止审计状态,将该数据表上的触发器与触发函数卸载,并将原审计表添加时间戳后重新命名,在审计状态信息列表中删除该数据表相关信息。11.pause函数功能如下:通过传入特定重要数据表的数据表名称,查询审计状态信息列表,若该数据表正处于审计状态,则暂停针对该数据表的审计,关闭该数据表的触发器,同时更新审计状态信息列表。12.restart函数功能如下:通过传入特定重要数据表的数据表名称,查询审计状态信息列表,若该数据表处于审计暂停状态,则重启该数据表的审计,开启该数据表触发器,此时对该数据表执行的操作均被触发器捕获并以日志参数配置格式进行日志记录,同时更新审计状态信息列表;若该数据表不存在于审计状态信息列表中,则采用默认配置开启对该数据表的安全审计;其中,默认配置为被审计的特定重要数据表名称table、操作命令action和执行当前操作的会话用户名称user参数。13.status函数功能如下:若传入特定重要数据表的参数列表为空,则打印审计状态信息列表中所有信息,否则依据传入特定重要数据表的参数列表,打印审计状态信息列表中的对应信息。14.优选地,所述的审计状态信息列表记载如下信息参数:特定重要数据表名称table、日志参数信息paramlist、审计状态status和触发器是否开启triggerenabled。15.更优选地,所述的审计状态status分为暂停和审计。16.本发明具有的有益效果:17.本发明通过设置针对数据表的数据表安全审计模块,可以根据管理员配置的日志参数对特定重要数据表开启审计,任何针对该特定重要数据表数据的添加、修改、删除操作都会被记录日志并存入特定审计表中,该特定审计表仅管理员可以查阅,不仅能够维护数据库中特定重要数据表安全,且能够帮助管理员进行小范围数据回退,从而避免由于用户一个小的操作失误而需要回退整个数据库内容,而且使得管理员可将数据表安全维护重心放置于特定重要数据表,不必对所有数据表都进行详细审计,从而避免浪费不必要的存储空间、运算资源等。因此,本发明能更好对数据库系统进行安全维护。附图说明18.图1为本发明中start函数的流程图。具体实施方式19.下面结合附图对本发明作进一步的说明。20.为了维护数据库系统中特定重要数据表安全,本发明提出一种数据表审计方法,通过扩展插件形式将数据表安全审计模块动态载入postgresql数据库系统,根据管理员配置的日志参数对特定重要数据表开启审计,任何针对该特定重要数据表数据的添加、修改、删除操作都会被记录日志并存入特定审计表中,该特定审计表仅管理员可以查阅。由于日志中会记录添加、修改、删除的具体数据内容,当用户出现不当操作导致将部分数据错误修改时可请求管理员查阅审计日志,从而获得原始正确数据。该数据表安全审计模块(tableaudit)使用pl/pgsql语言进行编写。该插件不仅能够维护数据库安全,且能够帮助管理员进行小范围数据回退,从而避免由于用户一个小的操作失误而需要回退整个数据库内容。21.日志参数说明22.管理员可配置对特定重要数据表的审计中需要记录的参数信息,数据表安全审计模块中的日志参数见表1。23.表1数据表安全审计模块的日志参数[0024][0025]seqid为当前操作的序列号参数。tstransaction是事务发生的时间戳参数,将用户对表操作的事务提交时间进行记录,在同一事务中,数据表项的更新会拥有相同的tstransaction,默认配置为开启。tsoperation是具体操作发生时间戳,在同一事务中,数据表项的更新会拥有不同的tsoperation,默认配置为关闭。action是操作命令参数,记录执行的操作命令属于insert(添加),update(修改)还是delete(删除),默认配置为开启。schema为模式名称参数,由于不同的schema中可以存在同名的数据表,故记录被审计表格所属的schema名称能够确定被审计的特定重要数据表,不会造成审计日志混淆,默认配置为关闭。table记录被审计的特定重要数据表名称,默认配置为开启。user记录执行当前操作的会话用户名称,用于确认对被审计特定重要数据表进行操作的人员,默认设置为开启。[0026]功能函数说明[0027]数据表安全审计模块主要由以下五个功能函数实现,对特定重要数据表记录所有用户对其进行的操作,并将该操作根据管理员配置的日志参数格式记录进入特定审计表,同时创建信息列表记录各特定重要数据表的审计状态。数据表安全审计模块的函数功能划分见表2。[0028]表2数据库安全审计模块的函数功能划分[0029][0030]1)start函数[0031]通过传入特定重要数据表的数据表名称以及该数据表的参数列表,判断该数据表是否存在于审计状态信息列表,若该数据表处于审计暂停状态(paused,但仍存在于审计状态信息列表),则判断该数据表的参数列表中日志参数配置与该数据表对应特定审计表的信息参数列表中之前配置的日志参数设置是否相同,若相同,则调用restart函数重启对该数据表的审计,否则将该数据表的原触发器和原触发函数卸载,将原审计表添加时间戳后重新命名,并根据传入数据表名称开启新的审计;若该数据表未被审计过(未处于审计暂停状态),则直接创建新的特定审计表并根据传入数据表名称开启新的审计;开启新的审计时,获取被执行操作的数据表的日志参数配置,并根据该数据表的参数列表为该数据表创建新触发器函数和新触发器,对该数据表进行的添加、修改、删除操作根据日志参数配置提取关键信息进行日志记录,并将数据表名称与该数据表的参数列表存储于审计状态信息列表。对数据表的审计开启流程如图1所示。[0032]2)stop函数[0033]通过传入特定重要数据表的数据表名称,查询审计状态信息列表,若特定重要数据表处于停止审计状态,将该数据表上的触发器与触发函数卸载,并将原审计表添加时间戳后重新命名,在审计状态信息列表中删除该数据表相关信息。此时,用户对该数据表的操作将不再被审计,且调用restart函数将无法恢复对该数据表的安全维护,但管理员用户可通过查阅添加时间戳后的审计表来了解用户操作行为。[0034]3)pause函数[0035]通过传入特定重要数据表的数据表名称,查询审计状态信息列表,若该数据表正处于审计状态,则暂停针对该数据表的审计,关闭该数据表的触发器,同时更新审计状态信息列表,从而使得用户在此时对该数据表的操作不会被日志记录,该功能主要在管理员需要对数据表进行大量数据操作时来减少不必要日志记录。[0036]4)restart函数[0037]通过传入特定重要数据表的数据表名称,查询审计状态信息列表,若该数据表处于审计暂停状态,则重启该数据表的审计,开启该数据表触发器,此时数据库用户对该数据表执行的操作均被触发器捕获并以日志参数配置格式进行日志记录,同时更新审计状态信息列表;若该数据表不存在于审计状态信息列表中,则采用默认配置开启对该数据表的安全审计;其中,默认配置为被审计的特定重要数据表名称table、操作命令action和执行当前操作的会话用户名称user参数。[0038]5)status函数[0039]若传入特定重要数据表的参数列表为空,则打印审计状态信息列表中所有信息,否则依据传入特定重要数据表的参数列表,打印审计状态信息列表中的对应信息。审计状态信息列表中参数构成见表3。[0040]表3审计状态信息列表中参数[0041][0042]本发明具体使用时说明如下:[0043]本发明在postgresql数据库的共享预加载库(sharedpreloadlibraries)中完成配置之后重新启动数据库。使用管理员用户登录postgresql数据库后,调用createextension命令将数据表安全审计模块tableaudit插件动态载入数据库中。[0044]本发明调用start等函数对特定数据表开启安全审计时,生成的审计表此时仅可被该管理员用户查看或者修改。普通用户没有翻阅权限,并且普通用户对受审计数据表进行的修改操作都会被记录日志,管理员可通过日志定位进行恶意操作或不当操作的用户,限制此类用户操作权限或采取其他处理方式。[0045]本发明通过数据表安全审计模块插件,使得管理员可将数据表安全维护重心放置于特定重要数据表,不必对所有数据表都进行详细审计,从而避免浪费不必要的存储空间、运算资源等,更好对数据库系统进行安全维护。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献