当前位置: 首页 > 专利查询>王子影专利>正文

一种基于审计功能的ORACLE数据库点击率技术制造技术

技术编号:7339184 阅读:309 留言:0更新日期:2012-05-13 07:11
一种基于审计功能的ORACLE数据库点击率技术,利用ORACLE数据库的审计功能,通过对SELECT权限与表对象进行审计,利用数据库定时作业对审计结果进行查询,获取SELECT查询语句内容,再根据SELECT语句条件重新构造点击率查询语句与点击率更新语句,进行数据访问点击率的统计,实现SELECT查询触发器的功能。该技术利用数据库的审计功能进行数据点击率的统计不会遗漏用户通过不同途径对数据进行的访问,可实现对表记录点击率或指定字段点击率的统计,若与应用程序结合可实现对访问用户的登录IP等详细情况进行统计,其统计结果要大大优于单纯通过应用程序进行数据点击率的统计情况,同时弥补了ORACLE数据库没有SELECT触发器的缺陷。

【技术实现步骤摘要】

本专利技术涉及一种统计ORACLE数据库内数据访问率的技术实现,用于实现select 查询后自动触发数据查询统计的功能,尤其用于统计重要数据资料的使用情况即数据点击率。
技术介绍
目前,网站利用点击率统计该网站的用户访问量,用户的访问量越大,说明该网站的知名度大,从而网站的广告效益也就更大。数据库的点击率即通过在数据库表中添加点击率字段来统计数据的使用情况,从而统计出数据资料的重要性。目前,ORACLE数据库只提供了 INSERT、UPDATE、DELETE语句的触发器功能,而没有提供SELECT语句的触发器功能, 因而不能利用触发器来实现对数据点击率(即SELECT查询)的统计功能。较为传统和简单的方法就是利用应用程序进行统计用户对数据的访问情况,然后将访问信息存储到数据库表中的点击率字段,此种方式统计信息较为全面,但不一定完整,它的前提是建立在用户利用指定的应用程序访问数据库的数据资料基础之上,一旦用户通过其它途径访问数据库的资料就没有办法确切地统计数据的使用情况,势必造成数据访问统计的遗漏现象。
技术实现思路
为了增加对ORACLE数据库资料访问的统计功能,克服传统统计方式的缺点,本专利技术提供了一种基于审计功能的数据库点击率技术,该技术弥补了 ORACLE数据库无SELECT 触发器的缺陷,实现了对ORACLE数据库的SELECT查询统计功能,不仅能够统计对ORACLE 数据库资料的访问情况,还能较为完整、详细地统计数据的访问信息。本专利技术解决其技术问题所采用的技术方案是利用数据库的审计功能,详细记录对数据库的各种操作,通过指定特定的审计级别与审计对象,即可实现对SELECT语句的”触发器”功能完成对数据库资料的访问统计。用户对数据库资料的访问信息通过数据库的审计(AUDIT)功能,记录在数据表SYS.AUD$内,DBA_AUDIT_TRAIL是一个基于AUD$的视图, 其它视图则是DBA_AUDIT_TRAIL的子视图。通过利用定时作业每晚定时对审计视图进行查询统计与计算(类似SELECT触发器,触发间隔每天一次,触发时间夜间0点),并将统计结果记录保存到相应数据库表的点击率字段,来达到统计数据库表记录的访问情况。本专利技术的有益效果是,有效地弥补了 ORACLE数据库无SELECT触发器的缺陷,可以较为全面完整地统计出数据库资料的使用情况,从而能够统计出资料的重要程度,对科研工作者使用与统计重要数据资料具有很大的帮助意义。附图说明图1中模拟SELECT触发器通过对SELECT语句的审计功能,结合ORACLE数据库的定时作业实现了对SELECT语句的查询统计功能,定时作业的定时间隔可根据需要进行调整,为了不影响ORACLE数据库的正常功能,定时间隔为1天,定时时刻为午夜0点,起到了类似SELECT触发器的功能。图2中打开审计功能通常数据的审计功能都是关闭状态,若要使用审计功能,需要先打开审计功能。图2中移动审计相关表到其它表空间通常审计表AUD$与其它审计相关视图都存放到表SYSTEM空间内,由于SYSTEM表空间存储ORACLE系统信息且空间有限,为了不影响 ORACLE系统的运行,需要将审计相关表移动到其它表空间内。图2中建立对象的SELECT审计即通过对表指定SELECT审计,ORACLE系统将会记录对表的一切SELECT操作信息。图2中数据库定时作业通过建立数据库的定时作业(过程),每晚12点定时执行, 检查数据审计信息。图2中更新记录内点击率字段即通过执行定时作业,将当天对数据的SELECT操作进行统计查询与运算,并更新记录内相应的点击率字段,实现数据的访问统计功能。具体实施例方式首先,检查数据库系统是否开启审计功能。在SQLPLUS下以DBA身份登录数据库, 并执行show parameter audit指令,查看审计功能是否开启。查询结果中有两个重要参数Audit_sys_operations 与 Audit_trail。Audit_sys_operations 默认为 false,当设置为true时,所有sys用户(包括以sysdbii,sysoper身份登录的用户)的操作都会被记录。Audit_trail的值有以下几种 None:是默认值,不做审计;DB Jfaudit trail记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;DB, Extended 这样审计结果里面除了连接信息还包含了当时执行的具体语句; OS 将audit trail记录在操作系统文件中,文件名由audit_file_dest参数指定; XML IOg里新增的,将audit trail记录在XML文件中。注这两个参数是static参数,需要重新启动数据库才能生效。^ Audit_sys_operations = false; Audit_trail =None;贝U1-白勺Φ"it 功能未开启,需要执行以下命令,开启审计功能。SQL> alter system set audit_sys_operations=TRUE scope=spfile; SQL> alter system set audit_trail=db, extended scope=spfile;重启数据库即可开启审计功能。其次,移动审计相关的表至其它表空间。通常审计表AUD$与其它视图均默认存放在SYSTEM表空间内,为了不影响ORACLE系统的性能,将审计相关的表均移动到其它新建表空间〈new tablespace〉内。执行以下命令SQL>alter table aud$ move tablespace <new tablespace>;SQL>alter index I_audl rebuild online tablespace <new tablespace>;SQL> alter table audit$ move tablespace <new tablespace>;SQL> alter index i_audit rebuild online tablespace <new tablespace>;SQL> alter table audit_actions move tablespace 〈new tablespace〉; SQL> alter index i_audit_actions rebuild online tablespace 〈new tablespace>;第三,确定审计级别,进行数据库审计。通常审计级别有三种,一是语句审计,对某种类型的SQL语句审计,不指定结构或对象。二是权限审计,当用户使用了该权限则被审计。特别地用户是自己表的所有者,所以用户访问自己的表不会被审计。三是对象审计,对一特殊模式对象上的指定语句的审计.如审计ON关键字指定对象的相关操作,若用户是表的所有者,则采用对象审计方式,即执行下述命令SQL > AUDIT SELECT TABLE ON <TABLENAME> BY ACCESS ;其中BY ACCESS指的是每一个被审计的操作都会生成一条本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王子影李盛乐闫民正张兴国刘坚
申请(专利权)人:王子影李盛乐闫民正张兴国刘坚
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术