有效降低数据库批量操作失误风险的管控设计和系统实践

2014-10-29 09:21苏伟
电子技术与软件工程 2014年16期
关键词:数据库

苏伟

摘 要

有效的管控好数据库操作员对后台核心数据的批量操作,建立起批量数据操作的预判、授权、审计流程,可减少核心数据批量误操作的概率,降低人为因素失误造成企业核心数据破坏的风险。本文研究如何利用现有的账号权限审计管理系统,通过引入数据库批量操作语句管控的设计思想,提供一套有效的数据库批量操作的管控体系。

【关键词】数据库 批量操作 管控体系

1 引言

随着企业信息化建设程度不断提高,信息系统的大量核心业务数据存放在各系统的后台数据库中。这些数据的日常维护大多是由系统管理和开发人员进行的。由于工作需求,他们都具备了直接访问获取和处理核心数据的权限。如果无法控制对于数据库中核心数据的访问行为,就有可能导致核心业务数据的泄露和破坏,直接影响到企业正常生产经营,因此必须加强数据库操作的管理。

根据维护经验,信息系统故障不少来至内部人员的批量误操作。俗话说得好:“事后控制不如事中控制,事中控制不如事前控制”,我们就是需要通过数据库库批量操作语句的管控设计,有效地降低操作员批量误操作的风险。

2 技术需求概述

数据库操作语句中,批量操作语句由于能够通过单条语句影响到多条数据,尤其是update/insert/delete等,直接实现对于数据的批量修改、新增和删除,需要具备专项管控手段,进行严格管控。通过设计数据库批量操作语句管控系统,可以在出现用户使用批量操作语句进行数据库操作时,及时发现并进行管控,保护数据库核心数据安全。设计和实现目标是:

(1)能够拦截用户的数据库操作语句;

(2)能够针对拦截到的语句进行语句分析,判断是否匹配触发规则;

(3)针对符合规则语句判断其操作影响数据条数,是否达到或超过管控阀值;

(4)针对达到管控阀值的语句能够阻断其执行,并提示用户进行授权申请;

(5)针对未达到管控阀值或未匹配触发规则的语句直接放行,保证其能正常执行;

(6)触发规则、管控阀值可以由系统管理员通过系统提供界面进行设定;

(7)对于语句阻断、用户申请授权、语句授权通过执行的过程能够记录完整日志,提供查询。

3 体系架构分析及设计

3.1 场景环境

现场已部署帐号权限审计管理的堡垒机系统,用户日常访问数据库都是使用部署在堡垒机上的数据库客户端访问工具进行访问。现场已接入管理数据库资源类型主要是Oracle,使用配套访问工具为PL/SQL Developer。

3.2 典型脚本分析

Oracle环境下常用的批量操作语句类型如下(暂只考虑Insert/Update/Delete三种典型类型):

(1)INSERT类型。

INSERT table1 values(v1, v2);

INSERT table1(c1,c2,c3) (select v1,v2,v3 from table2)

(2)UPDATE类型。

UPDATE table1 set col_na = v;

UPDATE table1 set col_na1 = v1 where col_na2 in (select col_na2 from table2 where col_na3 = v3);

UPDATE table1 set (col_na1, col_na2) = (select (col_na1, col_na2) from table2 where col_na3 = table1.col_na3) where table1.col_na4 = v;

(3)DELETE类型。

DELETE table1;

DELETE from table1 where col_na in (select col_na from table2 where col_na = v);

由于根据本系统需求特性,只需要判断最外层操作影响范围,对于复杂嵌套语句,皆可归并为以上实例类型。系统需要针对以上类型语句进行解析,判断实际操作影响行数,根据设定阀值进行管控触发。

3.3 核心思想及实现流程

针对批量操作语句,进行解析和重新组装,根据语句中相关查询条件,判断该语句执行后影响数据条目数。针对同类型操作,同操作对象,预先设定影响条目数上限阀值,一旦发现影响条目数超过阀值,则要求用户进行操作授权申请。本系统核心功能流程如下:

(1)用户通过plsql发送执行sql语句;

(2)系统拦截该语句;

(3)系统对于该语句进行解析;

(4)系统判断解析结果是否有拦截策略相匹配,如没有,则放过该语句继续执行;

(5)如果有匹配策略,则获取该语句执行影响条数;

(6)判断影响条数是否超过策略定义的阀值,如未达到,则放过该语句继续执行;

(7)如超过,则提示用户进行需要进行授权申请,申请未通过,则该语句被阻断,并提示用户;

(8)如申请通过,则该语句继续执行。

3.4 授权设定

对于触发审批后,PLSQL界面弹出窗口提示用户当前操作必须获取授权才能执行,我们系统设计时可以考虑现场授权和远程手机短信方式进行授权。

3.5 操作日志

对于数据库操作日志,我们依托堡垒机的审计功能进行记录

针对每次管控触发,提供授权日志,包括授权触发、授权审批、授权结果等过程的操作人、操作时间、操作触发控制点、审批人、审批结果等,都进行相关记录。

4 结束语

通过以上的管控体系,有效地减少了批量操作失误的概率,有效的保障企业信息系统的平稳运行。但是系统不是万能的,有再好的管控系统也可能会出现人为误操作,对于核心数据的操作务必谨慎再谨慎,落实有方案、有审批、有备份、有复核、有审计的管理要求,才能有效的规避相关误操作的发生,这才是最终的管理目标。

参考文献

[1](瑞士)Christian Antognini 著,童家旺 等译.Oracle性能诊断艺术[M].北京:人民邮电出版社,2009.

[2]严冬梅 著,数据库原理M].北京:清华大学出版社,2011.

作者单位

中国联通广西分公司 广西壮族自治区南宁市 530028endprint

摘 要

有效的管控好数据库操作员对后台核心数据的批量操作,建立起批量数据操作的预判、授权、审计流程,可减少核心数据批量误操作的概率,降低人为因素失误造成企业核心数据破坏的风险。本文研究如何利用现有的账号权限审计管理系统,通过引入数据库批量操作语句管控的设计思想,提供一套有效的数据库批量操作的管控体系。

【关键词】数据库 批量操作 管控体系

1 引言

随着企业信息化建设程度不断提高,信息系统的大量核心业务数据存放在各系统的后台数据库中。这些数据的日常维护大多是由系统管理和开发人员进行的。由于工作需求,他们都具备了直接访问获取和处理核心数据的权限。如果无法控制对于数据库中核心数据的访问行为,就有可能导致核心业务数据的泄露和破坏,直接影响到企业正常生产经营,因此必须加强数据库操作的管理。

根据维护经验,信息系统故障不少来至内部人员的批量误操作。俗话说得好:“事后控制不如事中控制,事中控制不如事前控制”,我们就是需要通过数据库库批量操作语句的管控设计,有效地降低操作员批量误操作的风险。

2 技术需求概述

数据库操作语句中,批量操作语句由于能够通过单条语句影响到多条数据,尤其是update/insert/delete等,直接实现对于数据的批量修改、新增和删除,需要具备专项管控手段,进行严格管控。通过设计数据库批量操作语句管控系统,可以在出现用户使用批量操作语句进行数据库操作时,及时发现并进行管控,保护数据库核心数据安全。设计和实现目标是:

(1)能够拦截用户的数据库操作语句;

(2)能够针对拦截到的语句进行语句分析,判断是否匹配触发规则;

(3)针对符合规则语句判断其操作影响数据条数,是否达到或超过管控阀值;

(4)针对达到管控阀值的语句能够阻断其执行,并提示用户进行授权申请;

(5)针对未达到管控阀值或未匹配触发规则的语句直接放行,保证其能正常执行;

(6)触发规则、管控阀值可以由系统管理员通过系统提供界面进行设定;

(7)对于语句阻断、用户申请授权、语句授权通过执行的过程能够记录完整日志,提供查询。

3 体系架构分析及设计

3.1 场景环境

现场已部署帐号权限审计管理的堡垒机系统,用户日常访问数据库都是使用部署在堡垒机上的数据库客户端访问工具进行访问。现场已接入管理数据库资源类型主要是Oracle,使用配套访问工具为PL/SQL Developer。

3.2 典型脚本分析

Oracle环境下常用的批量操作语句类型如下(暂只考虑Insert/Update/Delete三种典型类型):

(1)INSERT类型。

INSERT table1 values(v1, v2);

INSERT table1(c1,c2,c3) (select v1,v2,v3 from table2)

(2)UPDATE类型。

UPDATE table1 set col_na = v;

UPDATE table1 set col_na1 = v1 where col_na2 in (select col_na2 from table2 where col_na3 = v3);

UPDATE table1 set (col_na1, col_na2) = (select (col_na1, col_na2) from table2 where col_na3 = table1.col_na3) where table1.col_na4 = v;

(3)DELETE类型。

DELETE table1;

DELETE from table1 where col_na in (select col_na from table2 where col_na = v);

由于根据本系统需求特性,只需要判断最外层操作影响范围,对于复杂嵌套语句,皆可归并为以上实例类型。系统需要针对以上类型语句进行解析,判断实际操作影响行数,根据设定阀值进行管控触发。

3.3 核心思想及实现流程

针对批量操作语句,进行解析和重新组装,根据语句中相关查询条件,判断该语句执行后影响数据条目数。针对同类型操作,同操作对象,预先设定影响条目数上限阀值,一旦发现影响条目数超过阀值,则要求用户进行操作授权申请。本系统核心功能流程如下:

(1)用户通过plsql发送执行sql语句;

(2)系统拦截该语句;

(3)系统对于该语句进行解析;

(4)系统判断解析结果是否有拦截策略相匹配,如没有,则放过该语句继续执行;

(5)如果有匹配策略,则获取该语句执行影响条数;

(6)判断影响条数是否超过策略定义的阀值,如未达到,则放过该语句继续执行;

(7)如超过,则提示用户进行需要进行授权申请,申请未通过,则该语句被阻断,并提示用户;

(8)如申请通过,则该语句继续执行。

3.4 授权设定

对于触发审批后,PLSQL界面弹出窗口提示用户当前操作必须获取授权才能执行,我们系统设计时可以考虑现场授权和远程手机短信方式进行授权。

3.5 操作日志

对于数据库操作日志,我们依托堡垒机的审计功能进行记录

针对每次管控触发,提供授权日志,包括授权触发、授权审批、授权结果等过程的操作人、操作时间、操作触发控制点、审批人、审批结果等,都进行相关记录。

4 结束语

通过以上的管控体系,有效地减少了批量操作失误的概率,有效的保障企业信息系统的平稳运行。但是系统不是万能的,有再好的管控系统也可能会出现人为误操作,对于核心数据的操作务必谨慎再谨慎,落实有方案、有审批、有备份、有复核、有审计的管理要求,才能有效的规避相关误操作的发生,这才是最终的管理目标。

参考文献

[1](瑞士)Christian Antognini 著,童家旺 等译.Oracle性能诊断艺术[M].北京:人民邮电出版社,2009.

[2]严冬梅 著,数据库原理M].北京:清华大学出版社,2011.

作者单位

中国联通广西分公司 广西壮族自治区南宁市 530028endprint

摘 要

有效的管控好数据库操作员对后台核心数据的批量操作,建立起批量数据操作的预判、授权、审计流程,可减少核心数据批量误操作的概率,降低人为因素失误造成企业核心数据破坏的风险。本文研究如何利用现有的账号权限审计管理系统,通过引入数据库批量操作语句管控的设计思想,提供一套有效的数据库批量操作的管控体系。

【关键词】数据库 批量操作 管控体系

1 引言

随着企业信息化建设程度不断提高,信息系统的大量核心业务数据存放在各系统的后台数据库中。这些数据的日常维护大多是由系统管理和开发人员进行的。由于工作需求,他们都具备了直接访问获取和处理核心数据的权限。如果无法控制对于数据库中核心数据的访问行为,就有可能导致核心业务数据的泄露和破坏,直接影响到企业正常生产经营,因此必须加强数据库操作的管理。

根据维护经验,信息系统故障不少来至内部人员的批量误操作。俗话说得好:“事后控制不如事中控制,事中控制不如事前控制”,我们就是需要通过数据库库批量操作语句的管控设计,有效地降低操作员批量误操作的风险。

2 技术需求概述

数据库操作语句中,批量操作语句由于能够通过单条语句影响到多条数据,尤其是update/insert/delete等,直接实现对于数据的批量修改、新增和删除,需要具备专项管控手段,进行严格管控。通过设计数据库批量操作语句管控系统,可以在出现用户使用批量操作语句进行数据库操作时,及时发现并进行管控,保护数据库核心数据安全。设计和实现目标是:

(1)能够拦截用户的数据库操作语句;

(2)能够针对拦截到的语句进行语句分析,判断是否匹配触发规则;

(3)针对符合规则语句判断其操作影响数据条数,是否达到或超过管控阀值;

(4)针对达到管控阀值的语句能够阻断其执行,并提示用户进行授权申请;

(5)针对未达到管控阀值或未匹配触发规则的语句直接放行,保证其能正常执行;

(6)触发规则、管控阀值可以由系统管理员通过系统提供界面进行设定;

(7)对于语句阻断、用户申请授权、语句授权通过执行的过程能够记录完整日志,提供查询。

3 体系架构分析及设计

3.1 场景环境

现场已部署帐号权限审计管理的堡垒机系统,用户日常访问数据库都是使用部署在堡垒机上的数据库客户端访问工具进行访问。现场已接入管理数据库资源类型主要是Oracle,使用配套访问工具为PL/SQL Developer。

3.2 典型脚本分析

Oracle环境下常用的批量操作语句类型如下(暂只考虑Insert/Update/Delete三种典型类型):

(1)INSERT类型。

INSERT table1 values(v1, v2);

INSERT table1(c1,c2,c3) (select v1,v2,v3 from table2)

(2)UPDATE类型。

UPDATE table1 set col_na = v;

UPDATE table1 set col_na1 = v1 where col_na2 in (select col_na2 from table2 where col_na3 = v3);

UPDATE table1 set (col_na1, col_na2) = (select (col_na1, col_na2) from table2 where col_na3 = table1.col_na3) where table1.col_na4 = v;

(3)DELETE类型。

DELETE table1;

DELETE from table1 where col_na in (select col_na from table2 where col_na = v);

由于根据本系统需求特性,只需要判断最外层操作影响范围,对于复杂嵌套语句,皆可归并为以上实例类型。系统需要针对以上类型语句进行解析,判断实际操作影响行数,根据设定阀值进行管控触发。

3.3 核心思想及实现流程

针对批量操作语句,进行解析和重新组装,根据语句中相关查询条件,判断该语句执行后影响数据条目数。针对同类型操作,同操作对象,预先设定影响条目数上限阀值,一旦发现影响条目数超过阀值,则要求用户进行操作授权申请。本系统核心功能流程如下:

(1)用户通过plsql发送执行sql语句;

(2)系统拦截该语句;

(3)系统对于该语句进行解析;

(4)系统判断解析结果是否有拦截策略相匹配,如没有,则放过该语句继续执行;

(5)如果有匹配策略,则获取该语句执行影响条数;

(6)判断影响条数是否超过策略定义的阀值,如未达到,则放过该语句继续执行;

(7)如超过,则提示用户进行需要进行授权申请,申请未通过,则该语句被阻断,并提示用户;

(8)如申请通过,则该语句继续执行。

3.4 授权设定

对于触发审批后,PLSQL界面弹出窗口提示用户当前操作必须获取授权才能执行,我们系统设计时可以考虑现场授权和远程手机短信方式进行授权。

3.5 操作日志

对于数据库操作日志,我们依托堡垒机的审计功能进行记录

针对每次管控触发,提供授权日志,包括授权触发、授权审批、授权结果等过程的操作人、操作时间、操作触发控制点、审批人、审批结果等,都进行相关记录。

4 结束语

通过以上的管控体系,有效地减少了批量操作失误的概率,有效的保障企业信息系统的平稳运行。但是系统不是万能的,有再好的管控系统也可能会出现人为误操作,对于核心数据的操作务必谨慎再谨慎,落实有方案、有审批、有备份、有复核、有审计的管理要求,才能有效的规避相关误操作的发生,这才是最终的管理目标。

参考文献

[1](瑞士)Christian Antognini 著,童家旺 等译.Oracle性能诊断艺术[M].北京:人民邮电出版社,2009.

[2]严冬梅 著,数据库原理M].北京:清华大学出版社,2011.

作者单位

中国联通广西分公司 广西壮族自治区南宁市 530028endprint

猜你喜欢
数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库