电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

審計并報告Oracle數(shù)據(jù)庫中用戶活動

瀏覽:140日期:2023-11-13 14:58:36
從Oracle8i開始,Oracle引入了非凡的觸發(fā)器,這些觸發(fā)器并不是和非凡的DML事件相關聯(lián)的(DML事件,如,INSERT,UPDATE和DELETE)。這些系統(tǒng)級別的觸發(fā)器包括數(shù)據(jù)庫啟動觸發(fā)器,DDL觸發(fā)器和最終用戶登陸/注銷觸發(fā)器。 當Oracle提供了這些新的觸發(fā)器的功能后,卻還不清楚該如何使用這些觸發(fā)器來追蹤系統(tǒng)的使用情況。這篇文章描述了我是如何使用創(chuàng)建終端用戶登陸/注銷的方法來追蹤終端用戶的活動的。剛開始實行的追蹤終端用戶系統(tǒng)級觸發(fā)器是非常新的,就因為它非常的新,所以它在功能上還是不夠完善。 雖然用戶登陸/注銷觸發(fā)器會告訴你用戶登陸和用戶注銷的準確時間,可是代碼卻無法獲取在用戶會話階段所進行活動的任何信息。 這些用戶的登陸/注銷觸發(fā)器對于使用時間戳用戶的應用程序而言是非常有用的。所謂的時間戳用戶,就是那些在訪問應用程序的時候被給定一個唯一的Oracle用戶ID的人。不使用時間戳Oracle用戶ID的應用程序使用這些登陸/注銷觸發(fā)器可能沒有什么用。 既然我們知道了基本的知識,那么,讓我們看看該如何設計用戶審計表來追蹤用戶的活動。 設計一個用戶審計表 第一步就是創(chuàng)建一個用于存儲終端用戶登陸/注銷觸發(fā)器信息的Oracle表。為了合理地設計這些觸發(fā)器,讓我們先來看看系統(tǒng)級的觸發(fā)器。首先,我們在登陸的時候就會獲取以下信息: 用戶 ID—用戶的ID ,用于執(zhí)行登陸操作; 會話 ID—Oracle為用戶控制會話的ID; 主機—計算機的名稱; 登陸時間—一個用戶登陸時間一樣的Oracle時間數(shù)據(jù)類型,精確到0.001秒。 現(xiàn)在,我們將獲得僅僅優(yōu)先于用戶注銷的信息。當用戶在注銷的時候,Oracle系統(tǒng)級觸發(fā)器就可以提供這個用戶當前的會話狀態(tài)和活動信息: 最后的程序—用戶在注銷時執(zhí)行的最后一個程序的名稱。 最后的活動—用戶在會話種執(zhí)行的最后一個活動。 最后的模塊—用戶在注銷前訪問的最后一個模塊的名稱。 注銷時間—一個和用戶實際注銷時間一樣的一個Oracle時間數(shù)據(jù)類型,精確到0.001秒。 現(xiàn)在,我們知道了登陸和注銷的信息,那么我們如何搜集這些信息,并治理它們呢?讓我們來看看可用的選擇。 用戶表的標準化 因為用戶的登陸/注銷觸發(fā)器是兩個分離的實體,所以我們在設計支持存放這些信息的表的時候就可以有多種選擇。我們可以設計兩個隔離的表格:一個用戶登陸表和一個用戶注銷表。假如我們這樣做了,那么在把這兩個表連接起來的時候和判定哪個用戶的登陸引起了哪個用戶的注銷等等事情的時候就會有困難。這個投機取巧的方法可能會給錯誤的產生制造機會。諸如,用戶24在登陸前是如何注銷的?等等。 現(xiàn)在,讓我們考慮一個更好的選擇。為了很好的使用表的信息,我們可以創(chuàng)建一個數(shù)據(jù)庫,它里面包含一個單一的表,用于記錄登陸和注銷時間信息( Listing A)。這個方法就省去了連接表和關聯(lián)數(shù)據(jù)的麻煩。另外,我們還將創(chuàng)建一個區(qū)域,用于計算每個用戶在特定會話中所用去的時間。這個計算預先由觸發(fā)器做好,這樣就可以節(jié)省時間,并且可以創(chuàng)建一個豐富的報表,這個我們后面會提到。 設計一個登陸觸發(fā)器 一旦表格設計好了以后,接下來的步驟就是創(chuàng)建一個系統(tǒng)級的登陸觸發(fā)器,它可以在發(fā)生登陸時間的時候記錄盡可能多的信息。Listing B顯示了我創(chuàng)建的登陸審計觸發(fā)器。正像你看到的一樣,我在這個表中創(chuàng)建了一些在登陸時可以使用到的信息值: 用戶—建立Oracle會話的Oracle用戶ID 會話ID—使用Oracle的SYS context功能從v$session 表中直接獲取Oracle的會話ID。主機—使用Oracle的SYS context功能,在Oracle會話被創(chuàng)建的時候獲取主機名。請注重,對于使用Oracle并行服務器或者實際應用群的時候,獲取主機名是非常重要的,因為我們可能同時和許多不同的遠程主機都有會話連接。 登陸時間—獲取實際工作登陸的時間,精確到0.001秒。請注重我們是如何把登陸時間劃分成兩個區(qū)域的。產生一個登陸日期和一個登陸時間可以給最后的報表帶來很強的可讀性。 既然登陸觸發(fā)器已經(jīng)創(chuàng)建好了,我們就需要創(chuàng)建一個注銷觸發(fā)器來獲取用戶完成會話的所有信息。設計一個注銷觸發(fā)器 為了使一個單獨的表格同時為登陸和注銷事件服務,首先就需要定位單個用戶會話的登陸行。正像你想的一樣,這個小技巧使得答應許多用戶使用同一個用戶名在同一時間登陸。為了對這個情況做限制,我使用了Oracle會話ID。你知道,在每個用戶登陸Oracle的時候,Oracle就會給每個用戶分配一個唯一的會話ID,并把這個ID添加到v$session表中去。我們可以像使用主鍵一樣來使用這個會話ID,這樣,這個用戶在注銷的時候,他的注銷信息就可以更新我們的用戶審計表。 現(xiàn)在讓我們來看一看在我們使用了注銷觸發(fā)器后可以使用的信息。首先,我們更新用戶的日志表,使它包含用戶(在注銷前)的最后一個活動。正像你在Listing C看見的一樣,更新最后一個活動的這個工作是通過使用SYS context功能,從表v$session中獲取活動屬性的信息而完成的。 接下來,我們更新我們的審計表來顯示在會話期間訪問的最后一個程序。再一次,我們使用SYS context功能,從v$session表中選擇程序屬性這一列。 我們更新用戶會話所訪問的最后一個模塊。這是通過在v$session表中選擇模塊這個屬性列,用它的內容來填充我們的用戶審計表來完成的。 最后也是最重要的一個步驟就是添加注銷時間,并計算用戶在會話中停留的時間。和Listing C代碼中顯示的一樣,通過使用注銷時間數(shù)據(jù)類型來更新我們的用戶登陸表然后計算會話所用的時間。像我早先提及的一樣,預先計算每個用戶會話的時間將使得審計表中的每一個記錄都非常有用,因為它顯示了會話過程中的持續(xù)時間。 讓我們來檢查一下系統(tǒng)能夠產生的幾個報表。為了符合非凡需要,你可以充實/修改一下這些報表。現(xiàn)在,預先計算會話所用時間就顯得非常重要了:它可以創(chuàng)建一個更有用的報表。 用戶活動報表 使用用戶審計表來產生報表可以給作為Oracle數(shù)據(jù)庫治理員得你提供很多重要的信息。我們的第一個報表就是計算總的會話時間,請看Listing D。 我們可以創(chuàng)建一個的簡單查詢來訪問我們審計表,用于顯示日期、時間、用戶ID和用戶使用系統(tǒng)的時間。雖然很簡單,但是它可以給出每個用戶在我們的系統(tǒng)上使用的時間。 這個信息在有不同用戶ID使用系統(tǒng)不同區(qū)域的時候非凡有用。例如,假如這些Oracle用戶ID可以直接顯示在屏幕上的話,Oracle治理員就可以得知Oracle應用程序每個區(qū)域的使用率。下面,讓我們來看看另外一種類型的報表。 具體的用戶登陸報表 我們也可以使用同樣的表來顯示在特定時間使用我們系統(tǒng)的用戶數(shù)量。這個信息對于負責跟蹤用戶活動的Oracle數(shù)據(jù)庫治理員非凡有效。 通過在用戶審計表中查詢用戶登陸信息,我們可以在任何給定時間獲得精確的用戶對話數(shù)量。這個信息可以像在Listing E中顯示的一樣。 這些信息可以輸入微軟的Excel電子表格中,并擴展成為線條圖表,如下所示。 審計并報告Oracle數(shù)據(jù)庫中用戶活動正像你看到的,這個圖表清楚地顯示了在一天中每個小時用戶的活動情況。一旦你獲得了使用你系統(tǒng)的用戶的活動情況,你就可以總結一周里每日的信息或是總結一日里每小時的信息。這就提供了關于用戶使用系統(tǒng)的一個信號曲線,通過使用這些信號,我們可以描繪出用戶的活動情況。例如,我們可能會發(fā)現(xiàn)在每個周三下午一點的時候用戶活動非常頻繁。通過使用用戶審計表,我們可以很快地確定這些用戶的并調整Oracle來適應情況的變化,以便于用戶的使用。 跟蹤 使用系統(tǒng)級觸發(fā)器,相關的DDL、系統(tǒng)錯誤和用戶活動都可以很輕易地被捕捉到。然而,系統(tǒng)級觸發(fā)器并不像想象中具有那么多功能,Oracle指出,正在加強系統(tǒng)級觸發(fā)器的功能,這一版本的Oracle(Oracle 10g)將在2004年發(fā)布。 聰明地使用系統(tǒng)登陸/注銷觸發(fā)器可以提供一個很簡單而且又很可靠的跟蹤機制,用來跟蹤Oracle用戶的活動信息。對于那些長時間跟蹤用戶活動的Oracle治理員而言,用戶審計表可以為他們提供豐富的用戶信息,包括用戶使用信息,這個信息可以以每日每時的狀態(tài)或以每周每日的狀態(tài)顯示。
主站蜘蛛池模板: 全自动变压器变比组别测试仪-手持式直流电阻测试仪-上海来扬电气 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 壹作文_中小学生优秀满分作文大全| 无锡网站建设-做网站-建网站-网页设计制作-阿凡达建站公司 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 逗网红-抖音网红-快手网红-各大平台网红物品导航 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 365文案网_全网创意文案句子素材站 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | TwistDx恒温扩增-RAA等温-Jackson抗体-默瑞(上海)生物科技有限公司 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 剪刃_纵剪机刀片_分条机刀片-南京雷德机械有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 浩方智通 - 防关联浏览器 - 跨境电商浏览器 - 云雀浏览器 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | R507制冷剂,R22/R152a制冷剂厂家-浙江瀚凯制冷科技有限公司 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 中视电广_短视频拍摄_短视频推广_短视频代运营_宣传片拍摄_影视广告制作_中视电广 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 间甲酚,间甲酚厂家-山东祥东新材料 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 |