91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ORACLE AUDIT

發布時間:2020-08-06 23:28:22 來源:ITPUB博客 閱讀:151 作者:Davis_itpub 欄目:關系型數據庫

審計(Audit)用于監視用戶所執行的數據庫操作,并且Oracle 會將審計跟蹤結果存放到OS 文件(默認位置為$ORACLE_BASE/admin /$ORACLE_SID/adump/),或數據庫(存儲在system 表空間中的SYS.AUD$表中,可通過視圖dba_audit_trail 查看)中。審計可以提供有用的信息,用于揭示權限的濫用和誤用。當需要一定的粒度時,DBA 可以使用細粒度的審計來監控對表中某些行或列的訪問,而不僅僅是是否訪問表。

 

在oracle 11g 中,審計功能(AUDIT_TRAIL)是默認開啟的。審計數據默認存放SYSTEM 表空間下的AUD$審計字典基表上。開啟審計數據庫會增加消耗,降低業務性能,因此,如果不是很必要,在安裝好數據庫后,可適當選擇關閉數據庫審計功能。

 

Oracle 公司還推薦使用基于OS 文件的審計日志記錄方式(OSaudit trail files),當AUDIT_TRAIL 設置為OS 時,審計記錄文件將在AUDIT_FILE_DEST 參數所指定的目錄中生成。

 

一、審計類型

語句審計

按照語句類型審計SQL 語句,而不論訪問何種特定的模式對象。也可以在數據庫中指定一個或多個用戶,針對特定的語句審計這些用戶

權限審計

審計系統權限,例如CREATE TABLE ALTER INDEX。和語句審計一樣,權限審計可以指定一個或多個特定的用戶作為審計的目標

模式對象審計

審計特定模式對象上運行的特定語句(例如,DEPARTMENTS 表上的UPDATE 語句)。模式對象審計總是應用于數據庫中的所有用戶

細粒度的審計

根據訪問對象的內容來審計訪問和權限。使用程序包DBMS_FGA 來建立特定表上的策略

 

二、審計位置

審計記錄可以發送到SYS.AUD$數據庫表或操作系統文件。為了啟用審計并指定記錄審計記錄的位置,將初始參數AUDIT_TRAIL 設置為如下幾個值之一:

NONE, FALSE

 禁用審計

OS

啟用審計將審計記錄發送到操作系統文件

DB, TRUE

 啟用審計,將審計記錄發送到SYS.AUD$

DB_EXTENDED

啟用審計,將審計記錄發送到SYS.AUD$表,并在CLOB SQLBIND SQLTEXT 中記錄額外的信息

XML

 啟用審計,以XML 格式寫所有審計記錄

EXTENDED

 啟用審計,在審計跟蹤中記錄所有列,包括SqlText SqlBind 的值

 

參數AUDIT_TRAIL 不是動態的,為了使AUDIT_TRAIL 參數中的改動生效,必須關閉數據庫并重新啟動。在對SYS.AUD$表進行審計時,應該注意監控該表的大小,以避免影響SYS 表空間中其他對象的空間需求。推薦周期性歸檔SYS.AUD$中的行,并且截取該表。

 

在Oracle11g 中CREATE SESSION 作為受審計的權限來被記錄,因此當SYSTEM 表空間因磁盤空間而無法擴展時將導致這部分審計記錄無法生成,這將最終導致普通用戶的新會話將無法正常創建,普通用戶將無法登陸數據庫。在這種場景中仍可以使用SYSDBA 身份的用戶創建會話,在將審計數據合適備份后刪除一部分記錄,或者TRUNCATE AUD$都可以解決上述問題。在默認情況下會以AUTOEXTEND ON 自動擴展選項創建SYSTEM 表空間,因此系統表空間在必要時會自動增長,我們所需注意的是磁盤上的剩余空間是否能夠滿足其增長需求,以及數據文件擴展的上限,對于普通的8k smallfile 表空間而言單個數據文件的最大尺寸是32G。

 

三、開戶審計功能

SQL> alter system set audit_trail=db_extended scope=spfile;

重啟數據庫生效:

SQL> startup force

 

四、語句審計:

對于語句審計,audit 命令的格式看起來如下所示:

AUDIT sql_statement_clause BY {SESSION |ACCESS}WHENEVER [NOT] SUCCESSFUL;

參數如下:

sql_statement_clause 包含很多條不同的信息,例如希望審計的SQL 語句類型以及審計什么人。

by access 在每次動作發生時都對其進行審計,by session 只審計一次。默認是by session。

whenever successful 審計成功的動作:沒有生成錯誤消息的語句。

whenever not successful 審計語句的命令是否失敗

 

對于大多數類別的審計方法,如果確實希望審計所有類型的表訪問或某個用戶的任何權限,則可以指定all 而不是單個的語句類型或對象。

 

表1-1 列出了可以審計的語句類型,并且在每個類別中包含了相關語句的簡要描述。如果指定all,則審計該列表中的任何語句。然而,表1-2 中的語句類型在啟用審計時不屬于all 類別;必須在audit 命令中顯式地指定它們。

 

表1-1 包括在ALL 類別中的可審計語句

句 選 項

SQL 操作

ALTER SYSTEM

所有ALTER SYSTEM 選項,例如,動態改變實例參

數,切換到下一個日志文件組,以及終止用戶會話

CLUSTER

CREATEALTERDROP TRUNCATE 集群

CONTEXT

CREATE CONTEXT DROP CONTEXT

DATABASE LINK

CREATE DROP 數據庫鏈接

DIMENSION

CREATEALTER DROP 維數

DIRECTORY

 CREATE DROP 目錄

INDEX

CREATEALTER DROP 索引

MATERIALIZED VIEW

CREATEALTER DROP 物化視圖

NOT EXISTS

由于不存在的引用對象而造成的SQL 語句的失敗

PROCEDURE

 CREATE DROP FUNCTIONLIBRARYPACKAGE

PACKAGE BODY PROCEDURE

PROFILE

 CREATEALTER DROP 配置文件

PUBLIC DATABASE LINK

CREATE DROP 公有數據庫鏈接

PUBLIC SYNONYM

 CREATE DROP 公有同義詞

ROLE

CREATEALTERDROP SET 角色

ROLLBACK

SEGMENT CREATEALTER DROP 回滾段

SEQUENCE

 CREATE DROP 序列

SESSION

 登錄和退出

SYNONYM

 CREATE DROP 同義詞

SYSTEM

 AUDIT 系統權限的AUDIT NOAUDIT

SYSTEM GRANT

 GRANT REVOKE 系統權限和角色

TABLE

CREATEDROP TRUNCATE

TABLESPACE

 CREATEALTER DROP 表空間

TRIGGER

 CREATEALTER(啟用/禁用)DROP 觸發器;具有

ENABLE ALL TRIGGERS DISABLE ALL

TRIGGERS ALTER TABLE

TYPE

CREATEALTER DROP 類型以及類型主體

USER

CREATEALTER DROP 用戶

VIEW

CREATE DROP 視圖

 

 

 

表1-2 顯式指定的語句類型

句 選 項

SQL 操 作

ALTER SEQUENCE

 任何ALTER SEQUENCE 命令

ALTER TABLE

任何ALTER TABLE 命令

COMMENT TABLE

 添加注釋到表、視圖、物化視圖或它們中的任何列

DELETE TABLE

 刪除表或視圖中的行

EXECUTE PROCEDURE

 執行程序包中的過程、函數或任何變量或游標

GRANT DIRECTORY

 GRANT REVOKE DIRECTORY 對象上的權限

GRANT PROCEDURE

 GRANT REVOKE 過程、函數或程序包上的權限

GRANT SEQUENCE

GRANT REVOKE 序列上的權限

GRANT TABLE

 GRANT REVOKE 表、視圖或物化視圖上的權限

GRANT TYPE

 GRANT REVOKE TYPE 上的權限

INSERT TABLE

 INSERT INTO 表或視圖

LOCK TABLE

 表或視圖上的LOCK TABLE 命令

SELECT SEQUENCE

 引用序列的CURRVAL NEXTVAL 的任何命令

SELECT TABLE

 SELECT FROM 表、視圖或物化視圖

UPDATE TABLE

 在表或視圖上執行UPDATE

 

注意:

從Oracle Database 11g 開始,只有在初始參數AUDIT_TRAIL 被設置為DB_EXTENDED 時,才填充DBA_AUDIT_TRAIL 中的列SQL_TEXT 和SQL_BIND。默認情況下,AUDIT_TRAIL 的值是DB。

 

示例

[oracle@ocp Desktop]$ rlwrap sqlplus / as sysdba

SYS@orcl>show parameter audit_trail

SYS@orcl> alter system set audit_trail=db_extended

scope=spfile;

SYS@orcl> startup force

SYS@orcl>show parameter audit_trail

SYS@orcl> alter user scott account unlock identified by

scott;

SYS@orcl> audit create table by scott by access;

SYS@orcl>select user_name,audit_option,success,failure from

dba_stmt_audit_opts where user_name='SCOTT';

SYS@orcl> conn scott/scott

SCOTT@orcl> create table tt(id int);

SCOTT@orcl> conn / as sysdba

SYS@orcl>select username,to_char(timestamp,'MM/DD/YY

HH24:MI') Timestamp,obj_name, action_name, sql_text from

dba_audit_trail where username= 'SCOTT';

 

使用noaudit 命令關閉審計,如下所示:

SYS@orcl> noaudit create table by scott;

SYS@orcl> conn scott/scott

SCOTT@orcl> create table ee(id int);

SCOTT@orcl> conn / as sysdba

SYS@orcl>select username,to_char(timestamp,'MM/DD/YY

HH24:MI') Timestamp,obj_name, action_name, sql_text from

dba_audit_trail where username= 'SCOTT';

 

五、權限統計

審計系統權限具有與語句審計相同的基本語法,但審計系統權限是在sql_statement_clause 中,而不是在語句中,指定系統權限。

 

例如,將ALTER TABLESPACE 權限授予所有的DBA,生成審計記錄。啟用對這種權限的審計的命令:

audit alter tablespace by access whenever successful;

每次成功使用ALTER TABLESPACE 權限時,都會將一行內容添加到SYS.AUD$。

 

使用SYSDBA 和SYSOPER 權限或者以SYS 用戶連接到數據庫的系統管理員可以利用特殊的審計。為了啟用這種額外的審計級別,可以設置初始參數AUDIT_SYS_OPERATIONS 為TRUE。這種審計記錄發送到與操作系統審計記錄相同的位置。當使用其中一種權限時執行的所有SQL 語句,以及作為用戶SYS 執行的任何SQL 語句,都會發送到操作系統審計位置。

 

SYS@orcl> alter system set AUDIT_SYS_OPERATIONS=true

scope=spfile;

SYS@orcl> startup force

[oracle@ocp Desktop]$ cd /u01/app/oracle/admin/orcl/adump/

Vi 查看審計內容

 

 

權限審計示例:

SYS@orcl> audit create table by scott by access;

SYS@orcl> audit session by scott;

SYS@orcl> select user_name,privilege,success,failure from

dba_priv_audit_opts where user_name='SCOTT' order by

user_name;

SYS@orcl> conn scott/scott

SCOTT@orcl> create table tt(id int);

SCOTT@orcl> conn / as sysdba

SYS@orcl>select username,to_char(timestamp,'MM/DD/YY

HH24:MI') Timestamp,obj_name, action_name, sql_text from

dba_audit_trail where username= 'SCOTT';

SYS@orcl> noaudit create table by scott;

 

六、對象審計

AUDIT schema_object_clause BY {SESSION | ACCESS}WHENEVER [NOT] SUCCESSFUL;

schema_object_clause 指定對象訪問的類型以及訪問的對象。

 

可以審計特定對象上14 種不同的操作類型。對象審計選項如下:

象 選 項

說 明

ALTER

改變表、序列或物化視圖

AUDIT

審計任何對象上的命令

COMMENT

添加注釋到表、視圖或物化視圖

DELETE

從表、視圖或物化視圖中刪除行

EXECUTE

執行過程、函數或程序包

FLASHBACK

執行表或視圖上的閃回操作

GRANT

 授予任何類型對象上的權限

INDEX

 創建表或物化視圖上的索引

INSERT

將行插入表、視圖或物化視圖中

LOCK

鎖定表、視圖或物化視圖

READ

DIRECTORY 對象的內容執行讀操作

RENAME

重命名表、視圖或過程

SELECT

從表、視圖、序列或物化視圖中選擇行

UPDATE

更新表、視圖或物化視圖

 

 

對象審計示例:

SYS@orcl>show parameter audit_trail

SYS@orcl> alter system set audit_trail=db_extended

scope=spfile;

SYS@orcl>show parameter audit_trail

SYS@orcl> startup force

SYS@orcl> alter user scott account unlock identified by

scott;

SYS@orcl> audit select,insert,delete on scott.dept by

access;

SYS@orcl> select

object_name,object_type,alt,del,ins,upd,sel from

dba_obj_audit_opts;

SYS@orcl> conn scott/scott

SCOTT @orcl> insert into dept values(11,'aa','aa');

SCOTT @orcl> insert into dept values(12,'bb','bb');

SCOTT @orcl> commit;

SCOTT@orcl> conn / as sysdba

SYS@orcl> select timestamp,action_name,sql_text from

dba_audit_trail where owner='SCOTT';

SYS@orcl> noaudit select,insert,delete on scott.dept;

 

審計查詢

SYS@orcl>show parameter audit_trail

SYS@orcl> alter system set audit_trail=db_extended

scope=spfile;

SYS@orcl> startup force

SYS@orcl>show parameter audit_trail

SYS@orcl> alter user scott account unlock identified by

scott;

SYS@orcl> audit select,insert,delete on scott.dept by

access;

SYS@orcl>delete sys.aud$;

SYS@orcl> conn scott/scott

SCOTT @orcl> insert into dept values(13,'cc','cc');

SCOTT @orcl>select * from dept;

SCOTT @orcl>delete from dept where deptno=11;

SCOTT @orcl>update dept set loc='abc' where deptno=12;

SCOTT@orcl> conn / as sysdba

SYS@orcl>select

username,timestamp,owner,action_name,obj_name from

dba_audit_object;

 

七、細粒度的審計

細粒度的對象審計,或稱為FGA,審計變得更為關注某個方面,并且更為精確。由稱為DBMS_FGA 的PL/SQL 程序包實現FGA。

 

使用標準的審計,可以輕松發現訪問了哪些對象以及由誰訪問,但無法知道訪問了哪些行或列。細粒度的審計可解決這個問題,它不僅為需要訪問的行指定謂詞(或where 子句),還指定了表中訪問的列。通過只在訪問某些行和列時審計對表的訪問,可以極大地減少審計表條目的數量。

 

程序包DBMS_FGA 具有4 個過程:

ADD_POLICY 添加使用謂詞和審計列的審計策略

DROP_POLICY 刪除審計策略

DISABLE_POLICY 禁用審計策略,但保留與表或視圖關聯的策略

ENABLE_POLICY 啟用策略

 

用戶wl 通常每天訪問HR.EMPLOYEES 表,查找雇員的電子郵件地址。系統管理員懷疑wl 正在查看經理們的薪水信息,因此他們建立一個FGA 策略,用于審計任何經理對SALARY 列的任何訪問。

 

可以使用數據字典視圖DBA_FGA_AUDIT_TRAIL 訪問細粒度審計的審計記錄。如果一般需要查看標準的審計行和細粒度的審計行,則數據字典視圖DBA_COMMON_AUDIT_TRAIL 結合了這兩種審計類型中的行。

 

示例如下:

[oracle@ocp Desktop]$ rlwrap sqlplus / as sysdba

SYS@orcl>show parameter audit_trail

SYS@orcl> alter system set audit_trail=db_extended

scope=spfile;

SYS@orcl> startup force

SYS@orcl>show parameter audit_trail

SYS@orcl> create user wl identified by wl;

SYS@orcl> grant create session to wl;

SYS@orcl> grant select on hr.employees to wl;

SYS@orcl> alter user hr account unlock identified by hr;

SYS@orcl> begin

dbms_fga.add_policy(object_schema => 'HR',

object_name => 'EMPLOYEES',

policy_name => 'SAL_SELECT_AUDIT',

audit_condition => 'instr(job_id,''_MAN'') > 0',

audit_column => 'SALARY');

end;

/

SYS@orcl> conn wl/wl

WL@orcl> select employee_id, first_name, last_name, email

from hr.employees where employee_id = 114;

WL@orcl> conn / as sysdba

SYS@orcl> select to_char(timestamp,'mm/dd/yy hh34:mi')

timestamp,object_schema, object_name, policy_name,

statement_type from dba_fga_audit_trail where db_user =

'WL';

SYS@orcl> conn wl/wl

WL@orcl> select employee_id, first_name, last_name, salary

from hr.employees where employee_id = 114;

WL@orcl> conn / as sysdba

SYS@orcl> select to_char(timestamp,'mm/dd/yy hh34:mi')

timestamp,object_schema, object_name, policy_name,

statement_type from dba_fga_audit_trail where db_user =

'WL';

 

第一個查詢訪問經理信息,但沒有訪問SALARY 列。第二個查詢與第一個查詢相同,但是訪問了SALARY 列,因此觸發了FGA 策略,從而在審計跟蹤中生成了一行

 

 

八、與審計相關的數據字典視圖

數據字典視圖

說 明

AUDIT_ACTIONS

包含審計跟蹤動作類型代碼的描述,例如

INSERTDROP VIEWDELETELOGON LOCK

DBA_AUDIT_OBJECT

 與數據庫中對象相關的審計跟蹤記錄

DBA_AUDIT_POLICIES

 數據庫中的細粒度審計策略

DBA_AUDIT_SESSION

CONNECT DISCONNECT 相關的所有審計跟蹤記錄

DBA_AUDIT_STATEMENT

GRANTREVOKEAUDITNOAUDIT ALTER SYSTEM 命令相關的審計跟蹤條目

DBA_AUDIT_TRAIL

 包含標準審計跟蹤條目。USER_AUDIT_TRAIL 只包含已連接用戶的審計行

DBA_FGA_AUDIT_TRAIL

細粒度審計策略的審計跟蹤條目

DBA_COMMON_AUDIT_TRAIL

 將標準的審計行和細粒度的審計行結合在一個視圖中

DBA_OBJ_AUDIT_OPTS

 對數據庫對象生效的審計選項

DBA_PRIV_AUDIT_OPTS

 對系統權限生效的審計選項

DBA_STMT_AUDIT_OPTS

 對語句生效的審計選項

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘谷县| 莫力| 尼玛县| 玉田县| 江阴市| 广河县| 苏尼特右旗| 星子县| 乌拉特后旗| 南乐县| 长汀县| 宁蒗| 饶平县| 霍林郭勒市| 临汾市| 高台县| 江山市| 丹棱县| 忻州市| 正安县| 朝阳区| 准格尔旗| 喜德县| 嘉黎县| 镇安县| 五家渠市| 资讯| 陇南市| 凭祥市| 广东省| 江门市| 丘北县| 长垣县| 汝城县| 锦州市| 芦溪县| 府谷县| 应城市| 大关县| 昆山市| 曲阳县|