Kiểm soát chuẩn hệ thống database Oracle (Audit Standard)

Xem thêm các chuyên mục:

Chú ý: Bạn đang xem tài liệu nâng cao về cơ sở dữ liệu ORACLE. Nó sử dụng cho những người làm việc cao cấp kiểm soát hệ thống Database Oracle.

Tài liệu được biên soạn dưới dạng thô, và sẽ được chỉnh sửa tốt hơn trong thời gian tới.
 

1- Giới thiệu về kiểm soát hệ thống Oracle

Kiểm soát (Auditing) là giám sát và ghi lại (monitoring and recording) các hành động đã được cấu hình trong database. Bao gồm các hành động từ cả hai loại người dùng (user) database usernondatabase user.

Nonedatabase Users:

Nondatabase Users: Đây là các người dùng của một ứng dụng nào đó. Ứng dụng này sử dụng cơ sở dữ liệu Oracle, và vì vậy họ có thể thực thi các hành động đối với cơ sở dữ liệu. Các người dùng này cần được nhận dạng trong cơ sở dữ liệu sử dụng thuộc tính CLIENT_IDENTIFIER. Việc kiểm soát các người dùng này phức tạp hơn so với việc kiểm soát các người dùng của cơ sở dữ liệu (Database users).
Kiểm soát (Auditing) là một công việc cần thiết và quan trọng với người quản trị cơ sở dữ liệu. Nó là một công cụ hiệu quả chống lại các việc làm sai trái. Và luôn được thực hiện đầu tiên trong bất kỳ sáng kiến nào về an ninh trong Oracle.
Ngoài ra còn một số lý do khác cần kiểm soát:
  1. Kiểm soát viên kiểm soát người dùng sử dụng đặc quyền tiếp cận các đối tượng nhạy cảm.
  2. Kiểm soát lần theo vết (Audit Trail) ngăn chặn rất hiệu quả người dùng thực hiện những điều sai trái.
  3. Audit Trail là việc làm bắt buộc nếu bạn phải điều tra để tìm hiểu vấn đề gì thực hiện sai trái.
  4. Audit Trail cảnh báo bạn các hoạt động đáng ngờ, bạn có thể thực hiện phân tích những gì bạn chưa rõ.
  5. Audit Trail là rất quan trọng khi định nghĩa điều khiển việc truy nhập, đặc biệt trong các ứng dụng hiện có.
  6. Rất khó xác định "chính sách kiểm soát việc truy cập" sẽ không phá vỡ quy trình nghiệp vụ, trừ khi bạn biết tình trạng hiện tại và họ đang làm những gì.

Audit Trail (Kiểm soát lần theo dấu vết)

  1. Các hành động kiểm soát tạo ra một Audit Trail, bao gồm các bản ghi cho phép tìm những gì đã được thực hiện trong cơ sở dữ liệu.
  2. Căn cứ vào đó để biết những gì các user đã làm, và những đặc quyền nào đã sử dụng…
  3. Đối với mỗi bản ghi có các thông tin quan trọng như:
    • Ai đã thực hiện
    • Thực hiện ở đâu (Schema nào hay Object nào)  
    • Thực hiện khi nào.
    • Thực hiện như thế nào (Các câu lệnh SQL nào được thực hiện).
    • Cũng như các thông tin hữu ích khác trong việc điều tra giám sát.

2- Kích hoạt chế độ kiểm soát chuẩn

Standard Audit (Kiểm soát chuẩn) là cơ sở kiểm soát toàn diện và đầy đủ nhất trong cơ sở dữ liệu Oracle. Nó cho phép kiểm soát hành động (Action), loại hành động, đối tượng, đặc quyền (Privilege), user truy cập..
Có 2 giai đoạn liên quan đến sử dụng Standard Audit.
  • Kích hoạt cơ chế kiểm soát (Audit).
  • Xác định các chuyên mục (category) cần kiểm soát, tức là xác định các hành động nào sẽ được ghi lại dấu vết (Tạo ra Audit Trail).
Để kích hoạt chế độ kiểm soát cơ sở dữ liệu, bạn cần truy cập vào Oracle với user có đặc quyền sysdba.
sys/<password> as sysdba
Các dấu vết kiểm soát (Audit trail) có thể là một bảng dữ liệu hoặc 1 tập tin trên hệ điều hành. Nếu kiểm soát viên không có đặc quyền  (privilege) DBA, tốt nhất nên lưu trữ các thông tin kiểm soát trên các tập tin. Có 4 cách để thiết lập cách thức lưu trữ "các dấu vết kiểm soát".
 
Tham số Giải thích
DB Dấu vết được lưu trữ trong bảng AUD$, chỉ chứa lệnh (statement) không phải văn bản đầy đủ.
DB,EXTENDED Dấu vết được lưu trữ trong bảng AUD$, văn bản đầy đủ (Giá trị các biến (variable) đối với mỗi bản ghi..)
XML Dấu vết được lưu trữ trên tập tin của hệ điều hành, theo định dạng XML, nội dung giống tham số DB.
XML,EXTENDED Dấu vết được lưu trữ trên tập tin của hệ điều hành, theo định dạng XML, nội dung giống tham số DB,EXTENDED.

3- Thiết lập Audit với tham số DB

Trước hết, bạn cần kích hoạt chế độ kiểm soát với tham số là DB ( audit_trail = DB), thực hiện các lệnh dưới đây:
* SQLPLUS *
alter system set audit_trail=db scope=spfile;

shutdown immediate;

startup
 
Trong ví dụ này chúng ta sẽ thực hiện kiểm soát (audit) bảng cho Scott.EMP, với tham số DB, điều đó có nghĩa là các "dấu vết kiểm soát" (audit trail) sẽ được lưu trữ trong cơ sở dữ liệu (Cụ thể là lưu trữ vào bảng AUD$).
Audit all on scott.emp by access;

 
Sử dụng một user khác để thể thực hiện một vài hành động trên bảng Scott.EMP, chẳng hạn update. Các hành động này sẽ được lưu lại trên bảng AUD$.
-- Test

update scott.EMP set sal=sal*0.95 where job='MANAGER';
Truy vấn (query):
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40

-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
       action_name, sql_text from dba_audit_trail;

4- Thiết lập Audit với tham số DB,EXTENDED

Thiết lập chế độ kiểm soát với tham số audit_trail = DB,EXTENDED.
alter system set audit_trail=db,extended scope=spfile;

shutdown immediate;

startup
Thực hiện hành động update trên bảng Scott.EMP:
Audit all on scott.emp by access;
Sử dụng một user khác để thực hiện một hành động nào đó trên bảng Scott.EMP:
-- Update

update scott.EMP set sal=sal + 10 where job='MANAGER';
column username format a9
column owner format a5
column obj_name format a10
column action_name format a11
column sql_text format a40

-- Query view DBA_AUDIT_TRAIL:
select username, owner, obj_name,
       action_name, sql_text from dba_audit_trail;
 

5- Thiết lập Audit với tham số XML

Sử dụng tham số audit_trail = xml các "dấu vết kiểm soát (audit trail)" sẽ được lưu trữ vào các tập tin có định dạng XML.
alter system set audit_trail=xml scope = spfile;

shutdown immediate;

startup
Các tập tin Audit thường nằm trong thư mục adump. Tuy nhiên để biết chính xác, bạn có thể sử dụng lệnh sau để kiểm tra tên thư mục chứa các tập tin Audit.
show parameter audit_file_dest;
db12c_ora_2328_20171107022919280000831625.xml
<?xml version="1.0" encoding="UTF-8"?>
  <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
   <Version>11.2</Version>
<AuditRecord><Audit_Type>8</Audit_Type><EntryId>1</EntryId><Extended_Timestamp>2017-11-06T19:29:19.280000Z</Extended_Timestamp><DB_User>/</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>CONNECT</Sql_Text>
</AuditRecord>
<AuditRecord><Audit_Type>4</Audit_Type><Session_Id>4294967295</Session_Id><StatementId>1</StatementId><EntryId>2</EntryId><Extended_Timestamp>2017-11-06T19:29:34.903000Z</Extended_Timestamp><DB_User>/</DB_User><Ext_Name>tran-pc\tran</Ext_Name><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1848:2328</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Returncode>0</Returncode><OSPrivilege>SYSDBA</OSPrivilege><DBID>1409002769</DBID>
<Sql_Text>ALTER DATABASE OPEN</Sql_Text>
</AuditRecord>

 

6- Thiết lập Audit với tham số XML,EXTENDED

Khi bạn thiết lập kiểm soát với tham số Audit_trail = xml,extended, kết quả thu được giống với sử dụng tham số Audit_trail = xml, tuy nhiên trong các tập tin XML sẽ có thêm thông tin về các lệnh (statement) đã được thực thi.
alter system set audit_trail=os scope=spfile;

shutdown immediate;

startup
db12c_ora_3956_20171108021424022000979538.xml
<?xml version="1.0" encoding="UTF-8"?>
  <Audit xmlns="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd">
   <Version>11.2</Version>
<AuditRecord><Audit_Type>1</Audit_Type><Session_Id>1350961</Session_Id><StatementId>13</StatementId><EntryId>1</EntryId><Extended_Timestamp>2017-11-07T19:14:24.025000Z</Extended_Timestamp><DB_User>SCOTT</DB_User><OS_User>tran-pc\tran</OS_User><Userhost>WORKGROUP\TRAN-PC</Userhost><OS_Process>1856:3956</OS_Process><Terminal>TRAN-PC</Terminal><Instance_Number>0</Instance_Number><Object_Schema>SCOTT</Object_Schema><Object_Name>EMP</Object_Name><Action>6</Action><TransactionId>030017001E0E0000</TransactionId><Returncode>0</Returncode><Scn>17925302</Scn><DBID>1409002769</DBID>
<Sql_Text>Update Emp set Sal = Sal + 10 where job = &apos;MANAGER&apos;
</Sql_Text>
</AuditRecord>

 

7- Xem các tham số liên quan

Khi chế độ kiểm soát đã được thiết lập cho cơ sở dữ liệu. Bạn có thể kiểm tra tham số đang được sử dụng.
-- Xem tất cả các tham số trong cơ sở dữ liệu

show parameter

show parameter audit_trail;
Kiểm tra tên thư mục chứa các tập tin Audit sẽ được tạo ra.

show parameter audit_file_dest;
Tên thư mục chứa các tập tin Audit được lưu trữ trong tập tin spfile<SID>.ora.
Thay đổi thư mục chứa các tập tin Audit:

alter system set audit_file_dest='C:\newdir' SCOPE=SPFILE;

8- Sử dụng các điều kiện kiểm soát

Với Oracle 11.1 hoặc cũ hơn. Bạn có thiết lập để có thể chỉ kiểm soát các hành động đã thực hiện thành công, hoặc chỉ kiểm soát các hành động đã thực hiện không thành công.
  • WHENEVER SUCCESSFUL: Chỉ kiểm soát các hành động thực hiện thành công
  • WHENEVER NOT SUCCESSFUL: Chỉ kiểm soát các hành động thực hiện không thành công
  • Hoặc cả 2: Kiểm soát tất cả hành động thành công hoặc không thành công (Đây là giá trị mặc định khi không sử dụng thêm 1 trong 2 tham số trên)
Chú ý: Với Oracle 11.2 hoặc mới hơn, hai tham số trên không có tác dụng. Tất cả các hành động thành công hoặc không thành công đều được ghi lại.

9- Tham số WHENEVER NOT SUCCESSFUL


audit update on scott.emp by access whenever not successful;
Test:
-- Thành công
update Scott.EMP set sal=sal * 1.1 where empno= 7369;

-- Không thành công
update Scott.EMP set empno=7499 where empno=7369;
 
Select Timestamp
      ,Username
      ,Action_Name
      ,Sql_Text
      ,Returncode
From   Dba_Audit_Trail
Where  Obj_Name = 'EMP'
And    Owner = 'SCOTT';
connect ronb

update scott.emp set sal=sal * 1.1 where empno = 7369;
Bản ghi trong Audit sẽ ghi lại chỉ trường hợp lỗi:

10- By Session và By Access

Có 2 lựa chọn khi thiết lập chế độ kiểm soát (Audit):
  1. BY ACCESS: Tạo các bản ghi kiểm soát mỗi lần có các hành động, điều này có nghĩa các hành động giống nhau (Các lệnh) vẫn sẽ được ghi lại.
  2. BY SESSION: Khi người dùng đăng nhập vào Oracle một phiên làm việc (session) được tạo ra, phiên làm việc kết thúc khi người dùng thoát ra. Oracle sẽ ghi lại các hành động (Các lệnh) của người dùng nhưng không trùng lặp.

By Access

Kiểm soát trên bảng Scott.EMP và ghi lại tất cả các hành động mỗi khi nó xẩy ra.
audit all on scott.emp by access;

connect scott

select max(sal) from emp;

update emp set sal=6000 where sal=5000;
Kết quả bản ghi kiểm soát:

By Session

audit all on Scott.Emp by session;

connect scott

select max(sal) from emp;

update emp set sal=6500 where sal=6000;
Kết quả kiểm soát vết có vẻ rất khác lần trước:
Chỉ có 1 bản ghi cho 2 hành động, và action name là SESSION REC. Bản ghi kiểm soát đại diện cho tất cả hoạt động trên đối tượng kiểm soát, SQL Text đơn giản chi ghi câu lệnh đầu tiên
Thông tin quan trọng hơn nằm tại cột SES_ACTIONS
Select Timestamp
      ,Username
      ,Action_Name
      ,Ses_Actions
From   Dba_Audit_Trail
Where  Obj_Name = 'EMP'
And    Owner = 'SCOTT';
 
SES_ACTIONS một dạng “bitmap” sắp xếp mỗi vị trí thể hiện 1 hành động (xem slide sau), trong ví dụ ta thấy vị trí thứ 10,11 đều hiển thị S
  • S: viết tắt là thành công
  • F: viết tắt không thành công
  • B: viết tắt vừa có lệnh thành công vừa có lênh không thành công

Vị trí trong SES_ACTION

Mỗi vị trí thể hiện 1 hành động

Ví dụ By Session

Thực hiện tiếp các lệnh :
update emp set empno=5555 where empno=4444;

insert into emp values(4444,'foo','bar',9999,'02-NOV-02',0,0,20);
Hiển thị Audit cho thấy S(thành công) đối với SELECT, B (có lệnh thành công lệnh không) với Update, F (không thành công) với INSERT

11- Sử dụng lệnh Audit

  1. Bạn có thể kiểm toán dựa trên ba loại riêng biệt
    • Câu lệnh thực hiện
    • Các đặc quyền – Các đối tượng
  2. Khi sử dụng lệnh Audit bạn chỉ định trong câu lệnh bạn muốn kiểm soát những gì

 
-- Tất cả hành động tạo bảng đối với User SCOTT:
 audit create table by scott;

-- Tất cả hành động thực hiện tạo bảng đối với mọi user:

 audit create table;

-- Kiểm soát tất cả câu lệnh:
 audit all;

 
-- Để kiểm soát một tập câu lệnh
audit create table, create procedure;

-- Hoặc sử dụng các nhóm lệnh như 1 cách viết tắt:
audit alter user;
audit drop user;
audit create user;

-- Thay vì 3 lệnh trên ta có thể thực hiện lệnh:
audit user;

-- Có thể thực hiện sử dụng phân loại kiểm soát để giới hạn các trường hợp:
audit create table by access;
audit create table by access whenever successful;

-- Cuối cùng bạn có phân loai cho riêng user:
audit create table by scott;
audit create table by scott by access;

12- Audit Session

  • AUDIT SESSION cho phép kiểm soát việc tạo các session. Một bản ghi kiểm soát được tạo đối với mỗi kết nối đến instance, nó bản ghi vào audit trail tại thời điểm kết nối và cập nhật bản ghi tại thời điểm ngắt kết nối.
  • Khi ghi trong CSDL bản ghi bao gồm: thời gian kết nối, thời gian ngắt kết nối, số lần xử lý I/O,..
  • Có thể phân loại AUDIT_SESSION theo user:
audit session by scott;

13- AUDIT NOT EXIST

Ghi lại đoạn lệnh lỗi xảy ra khi đối tượng không tồn tại:
audit not exists by access;
Thực hiện lệnh truy nhập đối tượng không tồn tại:
select * from foobar;
Kết quả bản ghi tạo ra ví dụ sử dụng XML_EXTENDED

14- Sử dụng Audit trên các đối tượng

  • Có thể kiểm soát trên 3 loại: câu lệnh, đặc quyền, và đối tượng
  • Khi sử dụng loại đối tượng, chỉ ra rằng bản ghi kiểm soát được tạo ra dựa trên thực tế một hành động nào đó tác động lên một đối tượng nhất định

Câu lệnh ví dụ:
audit select on scott.emp by access;

audit update on scott.emp by access;

audit all on scott.emp by access;

audit insert, update, delete on scott.emp by session;
Chỉ phân loại theo chuần (access, session) không phân loại theo người dùng:
audit select on scott.emp by scott;

15- Kiếm soát trên các đối tượng chưa tạo ra

Làm thế nào để kiểm soát đối tượng chưa được tạo ra, vấn đề tạo ra kiểm toán đối với mỗi đối tượng tạo mới 1 cách thủ công không phải biện pháp khả thi, thay vào đó sử dụng DEFAULT
Ví dụ bất kỳ đối tượng nào đều được kiểm soát DEL,UPD,INS
audit update,insert,delete ON DEFAULT by access;
Một Object mới sẽ được tạo ra với định nghĩa này, để xem thực hiện
Thay đổi Audit dạng by Session:
 

16- Kiểm soát Views

Có thể kiểm soát Views như kiểm soát bảng tạo ra nó.

Nếu sử dụng cả 2 khi đó truy cập vào view sẽ nhận được nhiều bản ghi kiểm soát. Ví dụ:
create view emp_details as
select EMPNO,ENAME,JOB,MGR,HIREDATE,DEPTNO from emp;


audit select on emp by access;

audit select on emp_details by access;

select count(*) from emp_details;
Khi đó trong Audit trail ghi lại:

17- Sử dụng Audit trên đặc quyền

  • Có thể kiểm soát trên 3 loại: câu lệnh, đặc quyền, và đối tượng
  • Khi sử dụng kiểm soát trên đặc quyền, phải xác định đặc quyền đó, khi được sử dụng một bản ghi kiểm soát sẽ được tạo
  • Ví dụ nếu kiểm toán quyền CREATE TABLE, khi thực hiện lệnh này ngoài schema của họ thì một bản ghi kiểm soát được tạo, còn nếu họ sử dụng đặc quyền CREATE TABLE chứ không phải quyền CREATE ANY TABLE trong schema của chính họ thì bản ghi kiểm toán sẽ không được ghi lại
connect sys as sysdba

grant create any table to scott;

audit create any table by scott by access;

connect scott

create table TAB_WONT_SHOW(i int); -- không dùng Create Any

create table HR.TAB_WILL_SHOW(i int);-- dùng create any

 
Cột PRIV_USED trong DBA_AUDIT_TRAIL hiển thị quyền sử dụng
Để kiểm soát tất cả các đặc quyền sử dụng (sử dụng theo phân loại user):
audit all privileges by scott by access;

18- Kiểm soát các lỗi không mong muốn trên lớp Network

Có thể sử dụng kiểm soát mạng để kiểm soát các lỗi

Đây là lỗi nội bộ trong CSDL hoặc trên lớp Oracle Network-lỗi không kết nối. Thường bao gồm: TNS-02507 thuật toan mã hóa không được cài đặt, TNS-12648-danh sách thuật toán mã hóa và toàn vẹn dữ liệu là trống, TNS-12650 thuật toán mã hóa và toàn vẹn dữ liệu không phổ biến…
-- Kích hoạt kiểm soát Network:
audit network;

-- Loại bỏ kiếm soát Network
noaudit network;

19- Đọc bản ghi kiểm soát

  • Các file ngoài HĐH được tạo với mỗi session và bao gồm các bản ghi kiểm soát mô tả session đó, sử dụng XML format còn dạng Text sử dụng AUDIT_TRAIL= OS.
  • Khi sử dụng DB, hoặc DB,EXTENDED có nhiều DB views để bạn hiển thị Audit một cách dễ ràng hơn
  • Audit trail được lưu chính trong bảng AUD$, hầu như không đọc nó vì khó đọc, ta đọc thông qua các View được tạo từ nó
  • Bạn có thể tạo nhiều view chi tiết để kiểm soát thông qua chạy script: $ORACLE_HOME/rdbms/admin/cataudit.sql
Script tạo ra các view sau:
  1. DBA_AUDIT_TRAIL-một phiên bản của AUD$ thân thiên người sử dụng và dễ đọc hơn:
    • BA_AUDIT_TRAIL.OS_USER lấy từ AUD$.SPARE1
    • DBA_AUDIT_TRAIL.ACTION_NAME mã lưu trong AUD$.ACTION#
  2. USER_AUDIT_TRAIL dựa trên DBA_AUDIT_TRAIL nhưng dành cho user kết nối hiện thời
  3. DBA_AUDIT_EXISTS dựa trên DBA_AUDIT_TRAIL hiển thị những hành động lỗi do đối tượng không tồn tại
  4. DBA_AUDIT_SESSION dựa trên DBA_AUDIT_TRAIL hiển thị các kết nối (bao gồm cả kết nối lỗi) và ngắt kết nối
  5. DBA_AUDIT_STATEMENT dựa trên DBA_AUDIT_TRAIL hiển thị các câu lệnh không truy cập dữ liệu đối tượng như là ALTER SYSTEM, GRANT,…
  6. DBA_AUDIT_OBJECT dựa trên DBA_AUDIT_TRAIL hiển thị các câu lệnh DO truy nhập đối tượng như là các lệnh DML
Có nhiều thông tin trong DBA_AUDIT_TRAIL, một vài cột có thể tự giải thích, còn các cột khác như sau:
  1. TERMINAL—trên Unix đây là pts, trên Windows đây là tên máy.
  2. ACTION-Mã số hành động được thực hiện bởi User (xem AUDIT_ACTIONS)
  3. ACTION_NAME-Tên hành động được thực hiện bởi User (xem AUDIT_ACTIONS)
  4. NEW_OWNER-Nếu đối tượng đổi tên, owner của đối tượng mới •NEW_NAME-Nếu đối tượng đổi tên, new name là tên mới của đối tượng
  5. OBJ_PRIVILEGE-nếu hành động được kiểm soát là Grant hoặc Revoke quyền một đối tượng, ghi lại các quyền đối tượng nào được thực thi
  6. SYS_PRIVILEGE-giống như OBJ_PRIVILEGE nhưng là quyền hệ thống
  7. ADMIN_OPTION-xác định các quyền được gán với lựa chọn ADMIN_OPTION
  8. GRANTEE-Nếu hành động được kiểm soát là grant hoặc privilege hoặc role tên của grantee là (user hoặc role)
  9. AUDIT_OPTION-khi hành động được kiểm soát là câu lệnh Audit thì lựa chọn này được ghi.
  10. SES_ACTIONS-Nếu hành đông được kiểm toán trên 1 đối tượng, thông tin kiểm soát được ghi nhận ở đây
  11. LOGOFF_TIME-Nếu việc kiểm soát là session, ghi lại thời gian logoff •LOGOFF_LREAD-các block logic được đọc bởi session
  12. LOGOFF_PREAD-các block vật lý được đọc bởi session
  13. LOGOFF_LWRITE-các block logic được ghi bởi session
  14. LOGOFF_DLOCK-số lượng deadlocks được xác định trong session.
  15. COMMENT_TEXT-thông tin xác thực chi tiết, liệu đã được CSDL chứng thực user, hoặc một vài chứng thực hệ thống server bên ngoài, thông tin client kết nối..
  16. SESSIONID-kiểm soát Session Id (khác Session Id trong V$Session) •ENTRYID-Nếu 1 câu lệnh có nhiều sự kiện kiểm soát , đây là số thứ tự
  17. STATEMENTID-Id duy nhất cho mỗi câu lệnh đối với mỗi session.=0 nếu sự kiện kiểm soát không liên quan đến 1 câu lệnh
  18. RETURNCOD-bằng 0 nếu không có lỗi, hoặc mã lỗi của Oracle
  19. PRIV_USED-chính xác quyền sử dụng được thực hiện cho hành động
  20. CLIENT_ID-nhận diện Client , có thể là đăng nhập qua ứng dụng

20- Hiển thị những gì đang được kiểm soát

Có 3 view cho bạn biết nhũng gì đang được kiểm soát:
  1. DBA_STMT_AUDIT_OPTS: cho biết các câu lệnh đang được kiểm soát
  2. DBA_PRIV_AUDIT_OPTS : cho biết các đặc quyền (privilege) đang được kiểm soát
  3. DBA_OBJ_AUDIT_OPTS : cho biết các đối tượng đang được kiểm soát

21- Sử dụng NoAudit

Loại bỏ việc Audit bằng sử dụng câu lệnh với NOAUDIT, ví dụ nếu bạn thực hiện kiểm soát tất cả bằng AUDIT ALL va sau đó quyết định không kiểm soát chạy NOAUDIT ALL.

Bạn không sử dụng phân loại access/session khi sử dụng NOAUDIT
noaudit create table by access;

noaudit create table
Có thể sử dụng WHENEVER để thay đổi việc kiểm soát :
Điều khó hiểu đối với người bắt đầu sử dụng kiểm soát chuẩn là đoạn lệnh Audit và NoAudit không tích lũy.Oracle không tạo 1 hồ sơ duy nhất sau đó điều chỉnh cho việc Audit và NoAudit. Rõ ràng nhất cho việc này là bạn sử dụng lệnh NOAUDIT ALL, ý bạn muốn dừng tất cả AUDIT nhưng nó vẫn không dừng tất cả mà chỉ dừng các Audit tạo ra từ lệnh toàn cục trước như là AUDIT ALL hoặc AUDIT NOT EXIST
Kiểm tra vẫn thấy Audit:
 

Sử dụng NoAudit All

Khi đó kết quả mới là No Audit All

22- Thảo luận kiểm soát và hiệu suất

  • Câu hỏi đầu tiên của tất cả mọi người là ảnh hưởng của việc kiểm soát đến hiệu suất của CSDL.
  • Hiểu được tác động của audit trails có trong CSDL là một trong những điều quan trọng nhất, nếu bạn có một môi trường hoạt động mạnh bạn có thể yêu cầu kiểm soát nghiêm ngặt
  • Khó có thể có 1 con số hoặc 1 công thức để đánh đồng các với môi trường của bạn để biết trước ảnh hưởng này
  • Theo bài diễn thuyết tại Oracle UK User Group năm 2006 thì tác động ảnh hưởng của việc kiểm soát VPD, FGA hoặc audit ảnh hưởng từ 8-200% tốc độ xử lý
  • Bạn cần đánh giá kiểm soát những gì, cần chạy thử nghiệm thực tế thay đổi từng chế độ kiểm soát riêng của mình..

23- Những quan điểm quan trọng cần nhớ

  1. Hiểu được yêu cầu chắc chắn cần kiểm soát, tác động của nó đến hoạt động của hệ thống ntn, cố gắng kiểm soát ít hơn (miễn sao không có tác động xấu đến an ninh CSDL)
  2. Nếu yêu cầu hoặc thực hiện thay đổi và bạn thay đổi chính sách kiểm soát một cách đáng kể, bạn phải thực hiện kiểm tra toàn diện trên môi trường Test trước khi đưa nên Product
  3. Nếu bạn muốn giảm chi phí tài nguyên(cả trên máy chủ và quan trọng hơn là việc triển khai các thay đổi trong chính sách)hoặc bạn yêu cầu kiểm soát mức cao bao gồm kiểm toán câu lệnh DML và SELECT, bạn phải chấp nhận ảnh hưởng đến khả năng thực hiện và xem xét giải pháp kiểm soát không dựa trên CSDL làm tăng I/O
  4. Tác động hiệu quả không phải chỉ chính Audit Trail, mà Audit trail cần được chuyển đến nơi khác, nó không thể ở CSDL hoặc HĐH. Nó cần chuyển để tách vai trò trách nhiệm=>cần quá trình lưu giữ đọc bản ghi, sao chép đến nơi khác, xóa chúng, dẫn đến tác đông thêm đến hiệu suất hoạt đông

Xem thêm các chuyên mục: