溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【安全】Oracle 安全管理與審計(jì)(二)

發(fā)布時(shí)間:2020-08-09 22:46:08 來源:ITPUB博客 閱讀:261 作者:bluedee9 欄目:關(guān)系型數(shù)據(jù)庫
《Oracle 安全管理與審計(jì)(二)》
新年新群招募: 中國Oracle精英聯(lián)盟 170513055群介紹:本群是大家的一個(gè)技術(shù)分享社區(qū),在這里可以領(lǐng)略大師級(jí)的技術(shù)講座,還有機(jī)會(huì)參加Oracle舉辦的技術(shù)沙龍,與興趣相投的小伙伴一起笑談風(fēng)云起,感悟職場(chǎng)情!
數(shù)據(jù)庫版本

SYS@LEO1>select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 – Production

操作系統(tǒng)信息

[oracle@leonarding1 admin]$ uname -a

Linux leonarding1.oracle.com 2.6.32-200.13.1.el5uek #1 SMP Wed Jul 27 21:02:33 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

再談Oracle安全管理

1.上一篇我們聊到《洪興社的Oracle情節(jié)之安全管理篇(一)》 http://space.itpub.net/26686207/viewspace-763470

主要介紹了“安全認(rèn)證” “TDE透明數(shù)據(jù)加密” “細(xì)粒度權(quán)限控制”這三個(gè)方面的Oracle安全技術(shù)。從原理到實(shí)踐我們由淺入深分析了技術(shù)細(xì)節(jié)和應(yīng)用場(chǎng)景,使大家從整體上了解Oracle技術(shù)的發(fā)展?fàn)顟B(tài),下面展示一下Oracle安全產(chǎn)品的發(fā)展路線

【安全】Oracle 安全管理與審計(jì)(二)

下面是Oracle常見安全解決方案

【安全】Oracle 安全管理與審計(jì)(二)

本文重點(diǎn)講述內(nèi)容列表

1.VPN 虛擬私有數(shù)據(jù)庫訪問控制

2.OLS 標(biāo)簽安全訪問控制

3.Database vault 數(shù)據(jù)庫保險(xiǎn)箱

4.FGA細(xì)粒度審計(jì)

5.SYS管理員級(jí)審計(jì)

什么是重點(diǎn):Oracle產(chǎn)品的原理并不復(fù)雜,關(guān)鍵是知道在什么場(chǎng)合下適用什么樣的產(chǎn)品,產(chǎn)品特性,帶來的效果。

 

演示一個(gè)VPD進(jìn)行數(shù)據(jù)訪問控制的示例

1.什么是VPDVirtual Private Database 虛擬私有數(shù)據(jù)庫,聽起來像是一個(gè)獨(dú)立自主的數(shù)據(jù)庫,其實(shí)在邏輯上是獨(dú)立的,物理上就是一個(gè)數(shù)據(jù)庫。原理就是通過指定過濾策略,對(duì)用戶的SQL添加謂詞條件,來達(dá)到過濾數(shù)據(jù)的目的。

 

2.VPD優(yōu)點(diǎn):

精細(xì)化訪問

對(duì)業(yè)務(wù)透明,不同的客戶發(fā)出相同SQL語句,查詢到的結(jié)果集不一樣,可以讓不同客戶只看其相關(guān)的數(shù)據(jù)

對(duì)用戶透明,用戶感知不到

不對(duì)數(shù)據(jù)本身做任何操作,只在SQL層面進(jìn)行過濾處理

VPD是數(shù)據(jù)庫默認(rèn)自帶的,無需獨(dú)立安裝

 

3.實(shí)驗(yàn)

我們建一張業(yè)務(wù)表car,有汽車名,汽車數(shù)量,汽車價(jià)格三個(gè)字段,插入9條記錄,分成高中低三個(gè)檔次

LEO1@LEO1>create table car (name varchar2(20),num number,cost number);

Table created.

LEO1@LEO1>insert into car values('toyota',10,30);         高級(jí)車

1 row created.

LEO1@LEO1>insert into car values('volvo',50,30);

1 row created.

LEO1@LEO1>insert into car values('honda',60,30);

1 row created.

 

LEO1@LEO1>insert into car values('biaozhi',70,20);        中級(jí)車

1 row created.

LEO1@LEO1>insert into car values('xuetielong',80,20);

1 row created.

LEO1@LEO1>insert into car values('polo',90,20);

1 row created.

 

LEO1@LEO1>insert into car values('xiali',20,10);          低級(jí)車

1 row created.

LEO1@LEO1>insert into car values('jili',30,10);

1 row created.

LEO1@LEO1>insert into car values('byd',40,10);

1 row created.

LEO1@LEO1>commit;

Commit complete.

LEO1@LEO1>select * from car;

NAME                        NUM       COST

-------------------- ---------- -------------------- -------------------- ----------

toyota                       10         30

volvo                        50         30

honda                       60         30

biaozhi                      70         20

xuetielong                   80         20

polo                         90         20

xiali                         20         10

jili                          30         10

byd                         40         10

9 rows selected.

 

我們的思路:car表上添加過濾策略“filter_name”和“filter_num”,當(dāng)select語句中有name字段時(shí)觸發(fā)“filter_name”策略,當(dāng)select語句中有num字段時(shí)觸發(fā)“filter_num”策略,過濾策略由函數(shù)“fun_name”和“fun_num”實(shí)現(xiàn)。

 

創(chuàng)建函數(shù)“fun_name”

LEO1@LEO1>create or replace function fun_name (fun_scheme  varchar2,fun_object  varchar2)

return varchar2 as fun_cost varchar2(20);

begin

fun_cost:='cost=30';

return(fun_cost);

end fun_name;

/

  2    3    4    5    6    7 

Function created.

 

創(chuàng)建函數(shù)“fun_num”

LEO1@LEO1>create or replace function fun_num (fun_scheme varchar2,fun_object varchar2)

return varchar2 as fun_cost varchar2(20);

begin

fun_cost:='cost=10';

return(fun_cost);

end fun_num;

/

  2    3    4    5    6    7 

Function created.

 

添加過濾策略“filter_name”

LEO1@LEO1>begin

dbms_rls.add_policy(

object_schema => 'leo1',

object_name => 'car',

policy_name => 'filter_name',

policy_function => 'fun_name',

sec_relevant_cols => 'name');

end;

/

  2    3    4    5    6    7    8    9 

PL/SQL procedure successfully completed.

 

添加過濾策略“filter_num”

 

LEO1@LEO1>begin

dbms_rls.add_policy(

object_schema => 'leo1',

object_name => 'car',

policy_name => 'filter_num',

policy_function => 'fun_num',

sec_relevant_cols => 'num');

end;

/

 

  2    3    4    5    6    7    8    9 

PL/SQL procedure successfully completed.

 

當(dāng)我們要查詢汽車名的時(shí)候,會(huì)觸發(fā)filter_name過濾策略,從而調(diào)用fun_name函數(shù)限制where cost=30的記錄顯示

LEO1@LEO1>select name,cost from car;

NAME                       COST

-------------------- ----------

toyota                       30

volvo                        30

honda                       30

 

當(dāng)我們要查詢汽車數(shù)量的時(shí)候,會(huì)觸發(fā)filter_num過濾策略,從而調(diào)用fun_num函數(shù)限制where cost=10的記錄顯示

LEO1@LEO1>select num,cost from car;

       NUM       COST

---------- ----------

        20         10

        30         10

        40         10

 

當(dāng)我們不想使用過濾策略的時(shí)候,如何刪除?

 

使用drop_policy存儲(chǔ)過程來刪除,filter_name和filter_num過濾策略

LEO1@LEO1>execute dbms_rls.drop_policy('leo1','car','filter_name');

PL/SQL procedure successfully completed.

 

LEO1@LEO1>execute dbms_rls.drop_policy('leo1','car','filter_num');

PL/SQL procedure successfully completed.

 

LEO1@LEO1>select * from car;

NAME                        NUM       COST

-------------------- ---------- ----------

toyota                       10         30

volvo                        50         30

honda                        60         30

biaozhi                      70         20

xuetielong                   80         20

polo                         90         20

xiali                        20         10

jili                         30         10

byd                          40         10

9 rows selected.

 

利用VPD隱藏敏感列信息

我們?cè)O(shè)計(jì)一個(gè)新的“filter_num”策略,只顯示cost=10的記錄,隱藏num列的汽車數(shù)量

LEO1@LEO1>begin

dbms_rls.add_policy(

object_schema => 'leo1',

object_name => 'car',

policy_name => 'filter_num',

policy_function => 'fun_num',

sec_relevant_cols => 'num',

sec_relevant_cols_opt => dbms_rls.all_rows);      只顯示相關(guān)的行信息

end;

/

  2    3    4    5    6    7    8    9   10 

PL/SQL procedure successfully completed.

 

LEO1@LEO1>select * from car;

NAME                        NUM       COST

-------------------- ---------- ----------

toyota                                   30

volvo                                    30

honda                                   30

biaozhi                                  20

xuetielong                               20

polo                                    20

xiali                         20         10

jili                          30          10

byd                         40          10

9 rows selected.

小結(jié):VPD是一種行級(jí)安全控制,操作簡單無需添加任何組件即可實(shí)施。

 

演示一個(gè)OLS進(jìn)行數(shù)據(jù)訪問控制的示例

1.什么是OLSOracle Label Security 甲骨文標(biāo)簽安全訪問控制,通過創(chuàng)建標(biāo)簽來過濾結(jié)果集,這種方式會(huì)修改表結(jié)構(gòu),會(huì)增加一列叫“標(biāo)簽列”又叫“偽列”,通過給不同的記錄指定不同的標(biāo)簽,從而達(dá)到顯示不同的結(jié)果集。OLSVPD功能更強(qiáng)大一些,并且不是數(shù)據(jù)庫默認(rèn)自帶的,需要獨(dú)立安裝。

 

2.Oracle Label Security的安裝

Oracle 10g 安裝OLS

運(yùn)行Oracle程序安裝文件

./runInstaller 安裝組件->選擇“Oracle Label Security 10.2.0.1.0

 

Oracle 11g 安裝OLS

11g不需安裝OLS組件,已經(jīng)安裝好了,只需要啟動(dòng)就好。

Red Hat Linux

1[oracle@leonarding1 oracle]$ chopt enable lbac                啟動(dòng)OLS,寫入OLS日志

 

Writing to /u02/app/oracle/product/11.2.0/db_1/install/enable_lbac.log...

%s_unixOSDMakePath% -f /u02/app/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk lbac_on

%s_unixOSDMakePath% -f /u02/app/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk ioracle

 

2)啟動(dòng)dbca安裝Oracle Label Security數(shù)據(jù)庫對(duì)象和專屬用戶

[oracle@leonarding1 oracle]$ dbca

【安全】Oracle 安全管理與審計(jì)(二)

配置數(shù)據(jù)庫選項(xiàng),點(diǎn)擊“下一步”

【安全】Oracle 安全管理與審計(jì)(二)

選擇哪個(gè)數(shù)據(jù)庫->LEO1” 點(diǎn)擊“下一步”

【安全】Oracle 安全管理與審計(jì)(二)

Oracle Label Security 組件上挑勾,點(diǎn)擊“下一步”

【安全】Oracle 安全管理與審計(jì)(二)

這里就出現(xiàn)了不可思議的場(chǎng)景,Oracle Label Security是灰框框,不可打勾,如果這里是白框框那么恭喜你可以成功繼續(xù)下一步了。當(dāng)然沒有安裝上的筒子們也不要?dú)怵H,條條大路通羅馬,請(qǐng)看下面的腳本方法。

 

Oracle Label Security 組件的腳本安裝法

1)我們使用Oracle自帶的OLS安裝腳本來部署OLS組件$ORACLE_HOME/rdbms/admin/catols.sql

[oracle@leonarding1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Jun 14 18:57:08 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@LEO1>@?/rdbms/admin/catols.sql

<<<<<<<<<<<<<<省略腳本執(zhí)行信息>>>>>>>>>>>>>>>

請(qǐng)注意在創(chuàng)建完數(shù)據(jù)庫對(duì)象后會(huì)自動(dòng)關(guān)閉數(shù)據(jù)庫,你需要重新啟動(dòng)

Database closed.

Database dismounted.

ORACLE instance shut down.

 

2)檢查OLS專屬用戶LBACSYS的狀態(tài),正常安裝腳本后為OPEN,如果是LOCKED,請(qǐng)執(zhí)行下面解鎖步驟

SYS@LEO1>select username,account_status from dba_users;

。。。。。。省略無用內(nèi)容。。。。。。

USERNAME                       ACCOUNT_STATUS

------------------------------ --------------------------------

LBACSYS                         OPEN

SYS                             OPEN

SYSTEM                         OPEN

OUTLN                          EXPIRED & LOCKED

MGMT_VIEW                     EXPIRED & LOCKED

33 rows selected.

解鎖并設(shè)置密碼,如果要是OPEN狀態(tài),可跳過這一步

alter user lbacsys account unlock;

alter user lbacsys identified by lbacsys;

小結(jié):LBACSYSOLS管理員用戶,安裝OLS之后就會(huì)自動(dòng)創(chuàng)建,如果有鎖請(qǐng)解鎖即可使用。

 

3)檢查LBACSYS用戶中涉及到的數(shù)據(jù)庫對(duì)象信息

LBACSYS用戶中不存在無效的數(shù)據(jù)庫對(duì)象。

SYS@LEO1>select object_type,object_name from dba_objects where owner='LBACSYS' and status='INVALID';

no rows selected

SYS@LEO1>set pagesize 999           設(shè)置999行才有一個(gè)分界符

SYS@LEO1>select object_type,count(*) from dba_objects where owner='LBACSYS' group by object_type;

OBJECT_TYPE           COUNT(*)

--------------------------------------------------

SEQUENCE                     2

PROCEDURE                    5

LIBRARY                       10

PACKAGE                      24

LOB                           1

PACKAGE BODY                 23

TYPE BODY                     5

TRIGGER                       3

FUNCTION                     35

TABLE                         21

INDEX                        28

VIEW                         57

TYPE                         10

13 rows selected.

這就是Oracle Label Security所使用的數(shù)據(jù)庫對(duì)象,以上我們完成了Oracle Label Security組件的安裝。

4)如何卸載Oracle Label Security組件

有安裝腳本自然就會(huì)有卸載腳本,執(zhí)行catnools.sql腳本就可自動(dòng)卸載OLS

SYS@LEO1>@?/rdbms/admin/catnools.sql

PL/SQL procedure successfully completed.           刪除存儲(chǔ)過程

 

PL/SQL procedure successfully completed.

 

Trigger dropped.                                刪除觸發(fā)器

 

Trigger dropped.

 

Trigger dropped.

 

PL/SQL procedure successfully completed.          

 

PL/SQL procedure successfully completed.

 

User dropped.                                  最后刪除用戶

 

2 rows deleted.

 

Commit complete.

先刪除Oracle Label Security對(duì)應(yīng)的數(shù)據(jù)庫對(duì)象再刪除LBACSYS用戶。

5)如何使用好Oracle Label Security

創(chuàng)建標(biāo)簽策略

SYS@LEO1>alter user lbacsys identified by lbacsys;      設(shè)置密碼

User altered.

 

SYS@LEO1>conn lbacsys/lbacsys                     切換lbacsys用戶

Connected.

 

LBACSYS@LEO1>execute sa_sysdba.create_policy(policy_name => 'ACCESS_LEO1',column_name => 'OLS_COLUMN');

BEGIN sa_sysdba.create_policy(policy_name => 'ACCESS_LEO1',column_name => 'OLS_COLUMN'); END;

 

*

ERROR at line 1:

ORA-00439: feature not enabled: Oracle Label Security

ORA-06512: at "LBACSYS.LBAC_SYSDBA", line 113

ORA-06512: at "LBACSYS.SA_SYSDBA", line 44

ORA-06512: at line 1

####################################################################################################

 

安裝database vault

1)啟動(dòng)chopt enable dv 服務(wù)

2)依賴Oracle Label Security

3)重啟數(shù)據(jù)庫startup force

4dbca創(chuàng)建數(shù)據(jù)庫對(duì)象

 

啟動(dòng)chopt enable dv 服務(wù)

[oracle@leonarding1 ~]$ chopt enable dv

 

Writing to /u02/app/oracle/product/11.2.0/db_1/install/enable_dv.log...

%s_unixOSDMakePath% -f /u02/app/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk dv_on

%s_unixOSDMakePath% -f /u02/app/oracle/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk ioracle

 

演示一個(gè)通過觸發(fā)器進(jìn)行審計(jì)的示例。

Car表是一個(gè)非常重要的表,記錄了4S店汽車的銷量情況,我們要對(duì)操作這個(gè)表動(dòng)作進(jìn)行審計(jì)

LEO1@LEO1>select * from car;

 

NAME                        NUM       COST

-------------------- ---------- ----------

toyota                       10         30

volvo                        50         30

honda                        60         30

biaozhi                      70         20

xuetielong                   80         20

polo                         90         20

xiali                        20         10

jili                         30         10

byd                          40         10

 

9 rows selected.

創(chuàng)建審計(jì)表car_audit

LEO1@LEO1>create table car_audit (

name varchar2(20),

num number,

cost number,

uuser varchar2(20),

ddate date);  2    3    4    5    6 

 

Table created.

 

創(chuàng)建審計(jì)觸發(fā)器

LEO1@LEO1>create trigger trg_car_audit

after insert or delete or update on car

for each row

declare

a_name  varchar2(20);

a_num   number;

a_cost  number;

begin

a_name :=:old.name;

a_num  :=:old.num;

a_cost :=:old.cost;

insert into car_audit values(a_name,a_num,a_cost,user,sysdate);

end;

/

  2    3    4    5    6    7    8    9   10   11   12   13   14 

Trigger created.

刪除記錄

LEO1@LEO1>delete from car where num=100;

1 row deleted.

LEO1@LEO1>commit;

Commit complete.

插入記錄

LEO1@LEO1>insert into car values('kia',100,50);

1 row created.

LEO1@LEO1>commit;

Commit complete.

更新記錄

LEO1@LEO1>update car set num=200 where num=100;

1 row updated.

LEO1@LEO1>commit;

Commit complete.

凡是對(duì)car表進(jìn)行DML操作都會(huì)觸發(fā)審計(jì)觸發(fā)器,并在car_audit表中留下審計(jì)記錄

LEO1@LEO1>select * from car_audit;

NAME        NUM      COST      UUSER                DDATE

-------------------- ---------- ---------- -------------------- ---------

kia            100       50       LEO1                 15-JUN-13

                                  LEO1                 15-JUN-13

kia            100       50       LEO1                 15-JUN-13

 

分別演示對(duì)sys用戶和普通用戶進(jìn)行審計(jì)的示例。

我們?cè)诓僮鲾?shù)據(jù)庫的時(shí)候,知道SYS用戶的權(quán)限是最大的干什么事很方便,同時(shí)帶來的問題就是非常危險(xiǎn),沒有人可以束縛住。因此我們有時(shí)需要對(duì)SYS用戶進(jìn)行審計(jì)

SYS@LEO1>show parameter audit

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

audit_file_dest                      string      /u02/app/oracle/admin/LEO1/adump

audit_sys_operations                 boolean     FALSE        默認(rèn)SYS用戶審計(jì)是關(guān)閉的,這個(gè)參數(shù)是開啟審計(jì)SYS用戶所有SQL語句

audit_syslog_level                   string                    默認(rèn)是關(guān)閉的,這個(gè)參數(shù)指出SYS用戶審計(jì)日志的存放位置

audit_trail                          string      DB

SYS@LEO1>alter system set audit_sys_operations=true scope=spfile;         打開SYS用戶審計(jì)

 

System altered.

SYS@LEO1>alter system set audit_syslog_level='user.notice' scope=spfile;     用戶日志

 

System altered.

SYS@LEO1>startup force                                          重啟數(shù)據(jù)庫使靜態(tài)參數(shù)生效

ORACLE instance started.

 

Total System Global Area  471830528 bytes

Fixed Size                  2214456 bytes

Variable Size             285214152 bytes

Database Buffers          176160768 bytes

Redo Buffers                8241152 bytes

Database mounted.

Database opened.

SYS@LEO1>show parameter audit

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

audit_file_dest                      string      /u02/app/oracle/admin/LEO1/adump

audit_sys_operations                 boolean     TRUE             審計(jì)啟動(dòng)

audit_syslog_level                   string      USER.NOTICE   

audit_trail                          string      DB

 

設(shè)置sys用戶審計(jì)日志輸出位置,Linux syslog.conf文件配置了各種類型日志的輸出位置和消息源

我們只需要將Oracle日志輸出配置信息添加到該文件中就可以了

[root@leonarding1 log]# vi /etc/syslog.conf

添加如下信息

# About Oracle SysLog

user.notice                                            /var/log/oracle_dbms

 

添加完之后,我們還要重新加載一下配置信息,syslog.conf文件生效

[root@leonarding1 log]# ps -ef | grep syslogd

root      2385     1  0 Jun14 ?        00:00:01 syslogd -m 0

root     29740 29502  0 17:25 pts/1    00:00:00 grep syslogd

[root@leonarding1 log]# kill -HUP 2385                        重新加載

Ok,操作系統(tǒng)的配置內(nèi)容完成了。

下面我們來演示一下SYS用戶的審計(jì)

SYS@LEO1>create table test as select * from dba_objects;      我們創(chuàng)建一個(gè)表

 

Table created.

 

SYS@LEO1>drop table test purge;                          再刪除一個(gè)表

 

Table dropped.

 

好了,SYS用戶操作做完了,我們來看看oracle_dbms審計(jì)日志中有沒有抓取到SQL語句

[root@leonarding1 log]# cat oracle_dbms

Jun 15 18:08:40 leonarding1 Oracle Audit[29903]: LENGTH : '199' ACTION :[46] 'create table test as select * from dba_objects' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/3' STATUS:[1] '0' DBID:[10] '1692458681'

Jun 15 18:08:49 leonarding1 Oracle Audit[29903]: LENGTH : '174' ACTION :[21] 'drop table test purge' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/3' STATUS:[1] '0' DBID:[10] '1692458681'

Good 創(chuàng)建表test和刪除表test的命令都抓取到了,例如 startup  shutdown  connect等操作都是可以抓取到的。

小結(jié):通過上面的測(cè)試實(shí)例,我們了解到了對(duì)數(shù)據(jù)庫管理員的審計(jì)也逐漸成為信息安全中的重要一項(xiàng),這樣可以對(duì)管理員人員進(jìn)行監(jiān)督,權(quán)限限制,提高數(shù)據(jù)庫安全級(jí)別,完善安全管理制度。這里提及一個(gè)問題,為什么SYS用戶的操作記錄需要記錄在操作系統(tǒng)文件中呢,這里就有一個(gè)淵源了,由于SYS用戶本身權(quán)力就大,大到可以把自己的操作記錄都可以刪除,因此為了節(jié)制SYS用戶,就把記錄操作的日志放在了操作系統(tǒng)下面,還不是普通用戶可以訪問的,必須是操作系統(tǒng)管理員才能查看,這下同學(xué)們應(yīng)該知道原委了吧。

 

普通用戶審計(jì)的示例

我們既可以對(duì)SYS用戶進(jìn)行審計(jì),那么在平時(shí)的時(shí)候更多的是對(duì)普通用戶的審計(jì),對(duì)普通用戶的審計(jì)就沒有這么嚴(yán)格了,它的審計(jì)記錄是可以放在數(shù)據(jù)庫基表sys.aud$中的,我們可以在數(shù)據(jù)庫層面上進(jìn)行查看。

標(biāo)準(zhǔn)審計(jì)內(nèi)容

1)審計(jì)會(huì)話

2)審計(jì)對(duì)象

3)審計(jì)操作

4)審計(jì)授權(quán)

實(shí)驗(yàn)

SYS@LEO1>show user

USER is "SYS"

SYS@LEO1>alter system set audit_trail=db,extended scope=spfile;          啟動(dòng)審計(jì)追逐數(shù)據(jù)庫功能

 

System altered.

 

SYS@LEO1>startup force;                                           重啟數(shù)據(jù)庫使靜態(tài)參數(shù)生效

ORACLE instance started.

 

Total System Global Area  471830528 bytes

Fixed Size                  2214456 bytes

Variable Size             285214152 bytes

Database Buffers          176160768 bytes

Redo Buffers                8241152 bytes

Database mounted.

Database opened.

 

我們計(jì)劃對(duì)leo1用戶的car表進(jìn)行審計(jì)

SYS@LEO1>audit select,insert,update,delete on leo1.car;

 

Audit succeeded.

指定審計(jì)對(duì)象和審計(jì)動(dòng)作,對(duì)select,insert,update,delete這四個(gè)操作Oracle都會(huì)進(jìn)行審計(jì)。

 

 

插入記錄

LEO1@LEO1> insert into leo1.car values('mini',150,150);

1 row created.

LEO1@LEO1>commit;

Commit complete.

LEO1@LEO1> select * from car;

。。。。。。省略。。。。。。

LEO1@LEO1>select userid,obj$name,sqltext from sys.aud$;

USERID           OBJ$NAME          SQLTEXT

--------------------------------------------------------------------------------------------------------------------------------

LEO1             CAR                select * from car

LEO1             CAR                insert into leo1.car values('mini',150,150)

 

VPD  OLS  db vault  audit  sys用戶

 

劉盛Leonarding
2013.6.16
北京&summer
分享技術(shù)~成就夢(mèng)想
Blog:www.leonarding.com

 

##########################################################################################
如果喜歡我的文章就請(qǐng)掃下面二維碼吧!關(guān)注微信號(hào):leonarding_public
在這里你能得到技術(shù)、實(shí)事、熱點(diǎn)消息等新興事物的思考和觀點(diǎn),別的地方可能沒有的東西。我將為大家提供最新技術(shù)與資訊動(dòng)態(tài),傳遞正能量。
【安全】Oracle 安全管理與審計(jì)(二)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI