数据库直连授权准入管理系统的设计与实现

2021-02-25 07:49范琪
中国信息化 2021年2期
关键词:控件痕迹语句

范琪

一、引言

如今,数字化建设正紧跟时代潮流而大步加速发展,数据量呈现爆发式增长,且数据应用扩展面不断扩大。历史数据不仅是资产,更是未来进行数据分析,发掘更多可能性的基础。而网络攻击在逐渐形成体系化态势的过程中,呈现出范围广、高命中、隐蔽性强的特点,攻击的辨识难度在不断加大。与之相对应的防御技术也在更新,不断带来新的挑战。种种因素已成为了数据深入应用的主要制约。

由于數据库资源进行了重新整合,部分用户的权限对应关系随之发生变化,其访问行为难以辨别,会给数据库的运行安全造成影响。因此,应转变思想,采取主动预警战略,识别潜在风险,开发数据库直连授权准入管理系统。该系统将用户的登录权限、访问痕迹、关键行为等纳入统一管理,对各套数据库运行状况进行安全监测预警,实现计算机用户访问权限受控、阻止用户未授权登录的风险行为,以及数据库的监测预警。这对于建立良好的数据库访问秩序,保障企业的各种软件和系统正常应用,保持数据库的平稳安全运行起到了重要作用。

二、系统的构建思路及设计

本系统通过构建专用双向数据链路,在某一用于生产管理的数据库中新建一个专门的用户,对其他所有在用数据库的运行状况及各数据库的用户访问情况进行集约化管理,并根据用户反馈及时做出后续分析和管理策略的调整。

该系统利用Oracle概要文件技术实现资源的分配限定,联合数据库级触发器技术实现对数据库的监测预警、对各级用户的直连授权及访问痕迹管理;通过数据多级钻取技术和参数控件联动技术,在异常出现的第一时间,链接到详情页,精准定位责任人,依此进行情况的核实和处理,做到“登录需授权”、“访问必留痕”、“行为全受控”、“违规有预警”。

三、实施过程中的应用技术研究

(一)Oracle概要文件

在数据库的多种防护策略中,概要文件起到十分重要的作用。根据用户的角色和任务,PROFILE被相应的创建并分配,不同用户采用与之匹配的PROFILE可以使系统资源得到更合理的分配和使用。其主要作用包括:

1.限制会话资源

用户尝试访问数据库时,Oracle会自动创建一个消耗CPU时间和内存资源的进程,叫做会话(session)。会话级资源不是无限的,且对于不用的用户限制不同,如果用户超过了限制,当前执行的语句将被Oracle中断,并对用户发出警告,但不会影响当前会话内已执行完成的句子。之后用户只能使用提交或者回滚语句,或切断连接,一切其他命令都会报错无法执行。

2.限制调用资源

每次运行SQL语句时,Oracle在不同的执行阶段需要向数据库发起不同的调用,这需要一定的CPU时间来处理此调用。调用级资源同样不是无限的,若在使用过程中超过了限制,语句将被Oracle停止执行,ROLLBACK后报错给用户,此举不会影响当前会话内已经执行的语句,用户会话不会被切断。

3.锁定帐户

用户在限定的登录次数内多次尝试并失败后,根据参数配置,帐户会自动锁定,待一段时间后自动或者由管理员手动解锁,防止暴力破解。

(二)数据库级触发器

客户端的大量会话记录都保存在Oracle自带的v$session中,如访问机器名等连接信息,但是通过机器名不能确定到具体的机器,无法自行追踪登入用户的IP地址。此时可以创建一个数据库级的触发器,当每一个新的用户连接开启的时候自动触发该触发器。

(三)超级链接传递参数实现数据多级钻取

在定义超级链接时,要分别在主表和目标表设置可以用于传递的参数,主表设置的参数名一定要和目标表的参数名相匹配,才能通过链接跳转,查询不同层级的报表内容。

实现方法:

首先,为了打通主子表的连接关系,在子表中新建一个参数。然后,在主表中满足条件的单元格,添加超级链接,设置网络报表地址、链接打开方式、参数传递方式和具体参数。

(四)参数控件联动实现单位分权查询

$fine_username这个参数代表登录用户的用户名,与人员组织结构关联后,可通过该参数精确定位到该用户的所属单位。通过控件间的参数传递,实现不同层级管理员对各单位的分权查询,该技术可通用于各系统。

步骤1:新建dw数据集

select subcompanyname from *_RJZYK where loginid=${fine_username}

其中$fine_username为登录用户名,*_RJZYK为整合了人员组织结构和机器信息的视图。将该数据集绑定至dw控件,输出实际值subcompanyname(单位名称)传递给下一个kdd数据集作为过滤条件。

步骤2:新建kdd数据集

通过IF条件进行条件过滤查询,若管理员来自一级管理单位则可查询本单位所有下属各单位名称,不进行过滤,而二级单位的管理员用户登陆后只能查询到本单位名称。将过滤后的数据集绑定到kdd控件中,设置实际值为subcompanyname(单位名称),将参数值传递给bwl数据集作为新的参数进行数据查询。

步骤3:新建bwl数据集

Select * from *_login_bwl a join *_rjzyk b on a.ip=b.ip

where subcompanyname=${kdd}

接收kdd控件传递的subcompanyname值,充入sql语句后进行数据查询。

注:由于功能模块名属于系统级敏感信息,出于安全考虑,在文中并没有提供完整的名称,省略部分以*代替。

四、系统应用效果及展望

(一)系统功能模块

系统开发了监测预警、直连授权、痕迹管理及统计分析等4大类、10小项主要功能。

痕迹管理:追踪用户访问痕迹,将其分为正常的登入、登出、及异常的登入阻止共三大类,重点监管未授权IP试图访问数据库的登入阻止行为,痕迹可精准定位,在警情发布的第一时间,通过数据钻取获得该时段用户尝试访问被拦截的具体行为,联系管理人员进行现场确认,排除可疑因素。

直连授权:将通过权限审批流程的IP通过命令语句添加到系统白名单中,仅允许该名单中的用户通过自己的电脑对相应数据库进行登录访问。同时,与痕迹管理联动,若被授权用户长时间无访问数据库痕迹,则将其权限收回,在下次申请授权时必须提交说明方可再次授权。管理过程中,将各数据库的白名单权限分别以数据库和单位为类别进行统计和排名,采取最小化原则严格限制授权数量,减少侵入风险。

监测预警:密切监控各服务器的实时访问压力,分析是否出现异常峰值并进行源头追溯,保障生产数据库运行平稳安全。

统计分析:将以上三个模块以数据表、饼状图、折线图等方式进行展现,便于更加直观、高效对生产数据库进行安全管理。

(二)应用现状及前景展望

目前该系统已全面覆盖相关生产单位和技术单位。经持续监测管理,当前各数据库运行状态保持平稳,用户权限得到有效控制,有效抵御了外部入侵检测。

五、总结

本文详细阐述了数据库直连授权准入管理系统的构建思路和具体做法,以单个IP为基点,线状管理用户级权限和访问行为,全面覆盖所有的生产数据库,“点-线-面”相结合,多管齐下,提高了管理效率,提升了管理水平,通过该系统促进数据库安全管理向更加集约化、专业化、精细化的方向发展,构建更加良好的数据库访问秩序。

作者单位:大庆油田第一采油厂信息中心

猜你喜欢
控件痕迹语句
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
痕迹(外一幅)
小偷留下来的痕迹
基本算法语句
我喜欢
触摸岁月的痕迹(2005)
作文语句实录
利用VF6.0的Timer控件实现动画效果
Spreadsheet控件在Delphi数据库系统中的编程与应用