0% found this document useful (0 votes)
68 views52 pages

Oracle Database Administration: Session 13 Performance and Security

This document provides an overview of performance and security topics related to Oracle Database administration. It discusses performance concepts like response time vs throughput and tuning at the system, database, and application levels. It also summarizes the SQL processing architecture including the parser, optimizer, row source generator, and execution. Additionally, it covers security framework fundamentals, security readiness practices, patching, initialization parameters, account management, passwords, SSL, and the listener.

Uploaded by

Atul Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
68 views52 pages

Oracle Database Administration: Session 13 Performance and Security

This document provides an overview of performance and security topics related to Oracle Database administration. It discusses performance concepts like response time vs throughput and tuning at the system, database, and application levels. It also summarizes the SQL processing architecture including the parser, optimizer, row source generator, and execution. Additionally, it covers security framework fundamentals, security readiness practices, patching, initialization parameters, account management, passwords, SSL, and the listener.

Uploaded by

Atul Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Oracle Database Administration

Session 13
Performance and Security

Harvard University
Performance

 Wholistic view
 System level
 Database level
 Application level

Harvard University
Performance Tuning

 Trade-offs Between Response Time and


Throughput
 OLTP applications define performance in
terms of throughput
 Decision Support Systems define
performance in terms of response time
 Response time = service time + wait time

Harvard University
SQL Processing Architecture

Harvard University
SQL Syntax
 The syntax for the SELECT statement is:
– SELECT columns
FROM tables
WHERE predicates;

 From
http://www.techonthenet.com/sql/select.php
 Good Information source for basic SQL
statements

Harvard University
Parser

 The parser performs two functions:


– Syntax analysis: This checks SQL statements
for correct syntax
– Semantic analysis: Checks that the current
database objects and object attributes are correct

Harvard University
Optimizer

 The optimizer is the heart of the SQL


processing engine. The Oracle server
provides one method of optimization: cost-
based optimizer (CBO).
 Default CBO – all_rows

Harvard University
Row Source Generator

 The row source generator receives the


optimal plan from the optimizer
 It outputs the execution plan for the SQL
statement
 A set of rows returned by an execution step is
called a row source
 The execution plan is a collection of row
sources, structured in the form of a tree

Harvard University
Row Source Generator

 A row source is an iterative control structure


 It processes a set of rows, one row at a time,
in an iterative manner. A row source produces
a data set.

Harvard University
SQL Execution
 The combination of steps required to execute
a statement is called an execution plan
 An execution plan includes an access method
for each table that the statement accesses
and an ordering of the tables(the join order), if
required.

Harvard University
SQL Execution

 To perform a full table scan, Oracle reads all


rows in the table, examining each row to
determine whether it satisfies the statement’s
WHERE clause

Harvard University
SQL Execution

 SQL execution is the component that


operates on the execution plan associated
with a SQL statement
 It then produces the results of the query.

 The optimizer determines the most efficient


way to execute a SQL statement

Harvard University
SQL Execution

 To execute a DML statement, Oracle may


need to perform many steps.
 Each of these steps either retrieves rows of
data physically from the database or prepares
them in some way for use in the next step

Harvard University
Explain Plan

 The EXPLAIN PLAN statement displays


execution plans chosen by the Oracle
optimizer for SELECT, UPDATE, INSERT,
and DELETE statements
 A SQL statement’s plan is the sequence of
operations Oracle performs to execute the
statement

Harvard University
Explain Plan

 The components of execution plans include:


– An ordering of the tables referenced by the
statement.
– An access method for each table mentioned in
the statement.
– A join method for tables affected by join
operations in the statement.

Harvard University
Explain Plan

 EXPLAIN PLAN output shows how Oracle


executes SQL statements
 The EXPLAIN PLAN results cannot
differentiate between well-tuned statements
and those that are poorly performed
 If the EXPLAIN PLAN output shows that a
statement uses an index, this does not mean
the statement runs efficiently

Harvard University
Explain Plan

 Sometimes using indexes can be extremely


inefficient
 It is best to use EXPLAIN PLAN to determine
an access plan, and later prove that it is the
optimal plan through testing
 When evaluating a plan, always examine the
statement’s actual resource consumption

Harvard University
Explain Plan

 Use the SQL trace facility and TKPROF to


examine individual SQL statement
performance (relative cost)
 Before issuing an EXPLAIN PLAN statement,
create a table to hold its output
 Run the SQL script UTLXPLAN.SQL to create
a sample output table called PLAN_TABLE in
your schema

Harvard University
Explain Plan

 The UTLXPLAN.SQL is located under


$ORACLE_HOME/rdbms/admin
 PLAN_TABLE is the default table into which
the EXPLAIN PLAN statement inserts rows
describing execution plans

Harvard University
Explain Plan
 EXPLAIN PLAN SET STATEMENT_ID = ‘1’
INTO plan_table
FOR <select * from v$datatbase>;

 EXPLAIN PLAN SET STATEMENT_ID = ‘value’


INTO plan_table
FOR <sql_statement>;

Harvard University
Explain Plan

 Display the most recent plan table output


using the following scripts:
– UTLXPLS.SQL - Shows plan table output for
serial processing
– UTLXPLP.SQL - Shows plan table output with
parallel execution columns
http://www.dbspecialists.com/presentations.html#explain_a

Harvard University
Autotrace

 SET AUTOTRACE ON EXPLAIN


STATISTICS
 SET AUTOTRACE OFF

Harvard University
System Statistics
 The gathered systems statistics are:
– single block readtime in ms
– multiblock readtime in ms
– cpu speed in mhz
– average multiblock_read_count in number of
blocks

Harvard University
System Statistics

 http://www.oracle.com/technology/pub/articles
/lewis_cbo.html
 http://www.oracle.com/technology/pub/articles
/tech_dba.html

Harvard University
Security Framework

Integrity Confidentiality

Availability

Harvard University
Environment Boundaries

Harvard University
Strategic and Tactical

Harvard University
Security Readiness

 Security Framework
 Defines steps
 Repeatable
 Verifiable
 Business ‘requirements’ focused

 http://iase.disa.mil/stigs/SRR/index.html

Harvard University
Security Readiness
 Regulations
– Sarbanes-Oxley (SOX)
– Gramm-Leach-Bliley (GLBA)
– Health Insurance Portability and Accountability
(HIPAA)
– Payment Card Industry Data Security (PCI)
– Federal Information Security Management
(FISMA)

Harvard University
Security Readiness
 Secure the Network
 Monitor the Network
 Access Control Methods
– Who
– What
 Audit Access and Data
– Who
– When
– What

Harvard University
Security Readiness

 Encrypt specific data


– SSN #
– Credit Card #
 Document Procedures

Harvard University
Security Patches

 Released 4 times a year


– January
– April
– July
– October
 The single most significant step to take to
protect your databases

Harvard University
Security Patches
 Ensure that you are using current product
versions
 Apply the appropriate Mandatory patches
 Stay current with Security patches for the
‘environment’
 Database and Application Server patches are
cumulative
 Application Products are not cumulative

Harvard University
Init.ora parameters

 Sql92_security = true
– User must have ‘select’ on a table to be able to
run ‘update’ or ‘delete’ statements
 07_dictionary_accesssibility = false

Harvard University
Accounts
 Default Accounts and default passwords
– 700+ accounts depending on what products are
installed
– 3rd party products
 User profiles
– Complex passwords
– Script utlpwdmg.sql
– /u01/app/oracle/product/
{ORACLE_HOME}/rdbms/admin

Harvard University
Accounts
 This script sets the default password resource
parameters
 This script needs to be run to enable the password
features.
 However the default resource parameters can be
changed based on the need.
 A default password complexity function is also
provided.
 This function makes the minimum complexity checks
like the minimum length of the password, password
not same as the username, etc. The user may
enhance this function according to the need.

Harvard University
Passwords

 The default password list


– http://www.petefinnigan.com/default/default_pass
word_list.htm
 More password information
– http://www.databasejournal.com/features/oracle/
article.php/3395721

Harvard University
SSL
 Secure Socket Layer
 Certificates
 Prevent attacks from the ‘side’
 Network sniffing
 Virtual Private Network (VPN) tunnel
 Virtual Private

Harvard University
Listener

 From 10g onwards no specific ‘listener’


password required
 Only the owner of the tnslsnr process can run
‘listener’ command
 The ‘listener.ora’ file should be write protected

 http://andrewfraser.wordpress.com/2007/05/24/listen

Harvard University
Transparent Data Encryption
 Transparent data encryption is a key-based
access control system
 Must be decrypted by a key to be understood
 The key is stored in an Oracle Wallet
 In 10g, columns in tables can be encrypted
 In 11g, tablespaces and/or columns can be
encrypted

Harvard University
Transparent Data Encryption

 http://www.oracle.com/technology/deploy/secu
rity/database-security/transparent-data-
encryption/tde_faq.html

 http://www.databasejournal.com/features/orac
le/article.php/3649956

Harvard University
SQL Injection
 It is a method of inserting SQL commands as
if they were user input
 An attacker can append data and commands
to an existing sql query
 Usually occurs at the URL
 The username and password screens are the
most vulnerable as they are the ‘front door’ to
your application

Harvard University
Buffer Overflow
 An application has an array (buffer) setup to
hold data.
 Usually with languages C and C++
 The array may not have specific boundaries
setup
 If identified, a hacker can write data to this
buffer, overrun the array boundary and
replace other data values stored in memory

Harvard University
Buffer Overflow

 Overflow is the process of writing to adjacent


buffers
 http://www.windowsecurity.com/articles/Analy
sis_of_Buffer_Overflow_Attacks.html

Harvard University
Auditing
 Enable auditing at the DB level by issuing the
below listed command
 ALTER SYSTEM SET audit_trail=db
SCOPE=SPFILE; (if spfile in use)
 Add the following to the startup script
 EXECUTE
dbms_workload_repository.create_snapshot()
 audit connect;

Harvard University
Auditing
 Audit data is stored in the aud$ table in the
‘system’ tablespace
 Purge the data in the AUD$ table periodically
or make sure that there is adequate space in
“SYSTEM” tablespace.
 Recycle the environment to enable auditing

Harvard University
Auditing

 Data collected
– Login/logout
– Source IP
– Programs used to connect from
 Describe aud$ for more information

Harvard University
Advanced Security Option (ASO)
 Encrypted sql*net
 Used to secure direct connections to the
database.
 Can encrypt data moving in both directions
 Needs client side setup
– Sql*net.ora
– SQLNET.CRYPTO_SEED = (some value)
 SQLNET.ENCRYPTION_TYPES_SERVER
 SQLNET.ENCRYPTION_TYPES_CLIENT

Harvard University
Hacking

 http://www.dbasupport.com/oracle/ora10g/hac
king01.shtml

Harvard University
Forensics
 If some one gets into your database, what did
that do.
– What did they look at
– What did they change
– Did they extract any data
 http://www.ngssoftware.com/
 http://www.ngssoftware.com/company-
news/oracle-forensics-a-new-series-of-
papers-by-david-litchfield/

Harvard University
Recap

 Design performance into the database setup


and configuration
 Have a security and performance mind set
 Understand your application and make
decisions based on that understanding
 No absolutes
 Be willing to change course

Harvard University
Reading
 Oracle Performance Tuning, Oracle Press
– Richard J.Niemiec
 Oracle 10g and 11g Security Guide
 Practical Oracle Security (e-book)
– http://www.syngress.com/catalog/?pid=4620
 Other Sources
– http://infosecurity.us/
– http://www.ngssoftware.com/

Harvard University

You might also like