Download presentation
Presentation is loading. Please wait.
Published byLeonel Titterington Modified over 9 years ago
1
Database Security and Auditing: Protecting Data Integrity and Accessibility Chapter 8 Application Data Auditing
2
Database Security & Auditing: Protecting Data Integrity & Accessibility2 Objectives Understand the difference between the auditing architecture of DML Action Auditing Architecture and DML changes Create and implement Oracle triggers Create and implement SQL Server triggers Define and implement Oracle fine-grained auditing
3
Database Security & Auditing: Protecting Data Integrity & Accessibility3 Objectives (continued) Create a DML statement audit trail for Oracle and SQL Server Generate a data manipulation history Implement a DML statement auditing using a repository
4
Database Security & Auditing: Protecting Data Integrity & Accessibility4 Objectives (continued) Understand the importance and the implementation of application errors auditing in Oracle Implement Oracle PL/SQL procedure authorization
5
Database Security & Auditing: Protecting Data Integrity & Accessibility5 DML Action Auditing Architecture Data Manipulation Language (DML): companies use auditing architecture for DML changes DML changes can be performed on two levels: –Row level –Column level Fine-grained auditing (FGA)
6
Database Security & Auditing: Protecting Data Integrity & Accessibility6 DML Action Auditing Architecture (continued)
7
Database Security & Auditing: Protecting Data Integrity & Accessibility7 DML Action Auditing Architecture (continued)
8
Database Security & Auditing: Protecting Data Integrity & Accessibility8 Oracle Triggers Stored PL/SQL procedure executed whenever: –DML operation occurs –Specific database event occurs Six DML events (trigger timings): INSERT, UPDATE, and DELETE Purposes: –Audits, controlling invalid data –Implementing business rules, generating values
9
Database Security & Auditing: Protecting Data Integrity & Accessibility9 Oracle Triggers (continued)
10
Database Security & Auditing: Protecting Data Integrity & Accessibility10 Oracle Triggers (continued) CREATE TRIGGER Executed in a specific order: –STATEMENT LEVEL triggers before COLUMN LEVEL triggers –BEFORE triggers before AFTER triggers USER_TRIGGERS data dictionary view: all triggers created on a table A table can have unlimited triggers: do not overuse them
11
Database Security & Auditing: Protecting Data Integrity & Accessibility11 Oracle Triggers (continued)
12
Database Security & Auditing: Protecting Data Integrity & Accessibility12 SQL Server Triggers CREATE TRIGGER DDL statement: creates a trigger Trigger condition: –Prevents a trigger from firing –UPDATE() and COLUMNS_UPDATE() functions Logical tables: –DELETED contains original data –INSERTED contains new data
13
Database Security & Auditing: Protecting Data Integrity & Accessibility13 SQL Server Triggers (continued) Restrictions—Transact-SQL statements not allowed: –ALTER and CREATE DATABASE –DISK INIT and DISK RESIZE –DROP DATABASE and LOAD DATABASE –LOAD LOG –RECONFIGURE –RESTORE DATABASE –RESTORE LOG
14
Database Security & Auditing: Protecting Data Integrity & Accessibility14 Implementation of an Historical Model with SQL Server Create a history table: –Same structure as original table –HISTORY_ID column Create a trigger: inserts original row into the HISTORY table
15
Database Security & Auditing: Protecting Data Integrity & Accessibility15 Fine-grained Auditing (FGA) with Oracle Oracle provides column-level auditing: Oracle PL/SQL-supplied package DBMS_FGA DBMS_FGA procedures: –ADD_POLICY –DISABLE_POLICY –DROP_POLICY –ENABLE_POLICY
16
Database Security & Auditing: Protecting Data Integrity & Accessibility16 Fine-grained Auditing (FGA) with Oracle (continued) ADD_POLICY parameters: –OBJECT_SCHEMA –OBJECT_NAME –POLICY_NAME –AUDIT_CONDITION –AUDIT_COLUMN –HANDLER_SCHEMA
17
Database Security & Auditing: Protecting Data Integrity & Accessibility17 Fine-grained Auditing (FGA) with Oracle (continued) ADD_POLICY parameters (continued): –HANDLER_MODULE –ENABLE –STATEMENT_TYPES DBA_FGA_AUDIT_TRAIL: view the audit trail of the DML activities
18
Database Security & Auditing: Protecting Data Integrity & Accessibility18 DML Action Auditing with Oracle Record data changes on the table: –Name of the person making the change –Date of the change –Time of the change Before or after value of the columns are not recorded
19
Database Security & Auditing: Protecting Data Integrity & Accessibility19 DML Action Auditing with Oracle (continued)
20
Database Security & Auditing: Protecting Data Integrity & Accessibility20 DML Action Auditing with Oracle (continued) Steps: –Use any user other than SYSTEM or SYS; with privileges to create tables, sequences, and triggers –Create the auditing table –Create a sequence object –Create the trigger that will record DML operations –Test your implementation
21
Database Security & Auditing: Protecting Data Integrity & Accessibility21 History Auditing Model Implementation Using Oracle Historical data auditing is simple to implement; main components are TRIGGER objects and TABLE objects Keeps record of: –Date and time the copy of the record was captured –Type of operation applied to the record
22
Database Security & Auditing: Protecting Data Integrity & Accessibility22 History Auditing Model Implementation Using Oracle (continued) Steps: –Use any user other than SYSTEM or SYS; with privileges to create tables, sequences, and triggers –Create history table –Create the trigger to track changes and record all the values of the columns –Test your implementation
23
Database Security & Auditing: Protecting Data Integrity & Accessibility23 DML Auditing Using Repository with Oracle (Simple 1) Simple Auditing Model 1 Flag users, tables, or columns for auditing Requires less database administrative skills: –Application administrators can do it –User interface is built in top of the repository Auditing flags are flexible Does not record before or after column values; only registers type of DML operations
24
Database Security & Auditing: Protecting Data Integrity & Accessibility24 DML Auditing Using Repository with Oracle (Simple 1) (continued)
25
Database Security & Auditing: Protecting Data Integrity & Accessibility25 DML Auditing Using Repository with Oracle (Simple 1) (continued) Steps: –Use any user other than SYSTEM or SYS –Create triggers –Create sequence object –Build tables to use for applications –Populate application tables
26
Database Security & Auditing: Protecting Data Integrity & Accessibility26 DML Auditing Using Repository with Oracle (Simple 1) (continued) Steps (continued): –Populate auditing repository with metadata –Create the stored package to be used with the trigger –Create triggers for application tables –Test your implementation
27
Database Security & Auditing: Protecting Data Integrity & Accessibility27 DML Auditing Using Repository with Oracle (Simple 2) Simple Auditing Model 2: requires a higher level of expertise in PL/SQL Stores two types of data: –Audit data: value before or after a DML statement –Audit table: name of the tables to be audited
28
Database Security & Auditing: Protecting Data Integrity & Accessibility28 DML Auditing Using Repository with Oracle (Simple 2) (continued)
29
Database Security & Auditing: Protecting Data Integrity & Accessibility29 DML Auditing Using Repository with Oracle (Simple 2) (continued) Steps: –Use any user other than SYSTEM or SYS; with privileges to create tables, and triggers –Create the auditing repository –Establish a foreign key in AUDIT_DATA table referencing AUDIT_TABLE table –Create a sequence object –Create the application schema
30
Database Security & Auditing: Protecting Data Integrity & Accessibility30 DML Auditing Using Repository with Oracle (Simple 2) (continued) Steps (continued): –Add data to tables –A stored PL/SQL package will be used for auditing within the triggers –Create triggers for audited tables –Add auditing metadata –Test your implementation
31
Database Security & Auditing: Protecting Data Integrity & Accessibility31 Auditing Application Errors with Oracle Application errors must be recorded for further analysis Business requirements mandate to keep an audit trail of all application errors Materials: –Repository consisting of one table –Methodology for your application
32
Database Security & Auditing: Protecting Data Integrity & Accessibility32 Auditing Application Errors with Oracle (continued) Steps: –Select any user other than SYSTEM or SYS; with privileges to create tables, and procedures –Populate tables –Create the ERROR table –Create a stored package to perform the UPDATE statement –Test your implementation: perform and update using the CREATE package
33
Database Security & Auditing: Protecting Data Integrity & Accessibility33 Oracle PL/SQL Procedure Authorization Oracle PL/SQL stored procedures are the mainstay of implementing business rules Security modes: –Invoker rights: procedure is executed using security credentials of the caller –Definer rights: procedure is executed using security credentials of the owner
34
Database Security & Auditing: Protecting Data Integrity & Accessibility34 Oracle PL/SQL Procedure Authorization (continued) Steps: –Create a new user –Select a user with CREATE TABLE and PROCEDURE privileges –Populate tables –Create stored procedure to select rows in a table –Grant EXECUTE privileges on new procedure –Log on as the new user and query the table –Execute procedure
35
Database Security & Auditing: Protecting Data Integrity & Accessibility35 Summary Two approaches for DML auditing: –Set up an audit trail for DML activities –Register all column values before or after the DML statement (column-level auditing) Fine-grained auditing (Oracle) Triggers: –Stored PL/SQL procedure automatically executed –Oracle has six DML events
36
Database Security & Auditing: Protecting Data Integrity & Accessibility36 Summary (continued) Triggers are executed in order USER_TRIGGERS data dictionary view: shows all triggers SQL Server 2000: –CREATE TRIGGER DDL statement –Conditional functions: UPDATE() and COLUMNS_UPDATED() FGA allows generation of audit trail of DML activities
37
Database Security & Auditing: Protecting Data Integrity & Accessibility37 Summary (continued) FGA is capable of auditing columns or tables; Oracle PL/SQL-supplied package DBMS_FGA PL/SQL stored procedures security modes: –Invoker rights –Definer rights
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.