Skip to Content
Oracle PL/SQL for DBAs
book

Oracle PL/SQL for DBAs

by Arup Nanda, Steven Feuerstein
October 2005
Intermediate to advanced
454 pages
14h 44m
English
O'Reilly Media, Inc.
Content preview from Oracle PL/SQL for DBAs

A Practical Encryption Example

How can we use our newfound knowledge of encryption in a system that we might encounter in the real world? Let’s examine a table named ACCOUNTS. The table looks like this.

    SQL> DESC accounts
     Name                                      Null?    Type
     ----------------------------------------- -------- -------------------
     ACCOUNT_NO                                NOT NULL NUMBER
     BALANCE                                            NUMBER
     ACCOUNT_NAME                                       VARCHAR2(200)

I want to protect the data by encrypting the columns BALANCE and ACCOUNT_NAME. As I’ve said many times, the most important element is the key, and it must be an appropriate one. I can generate a key, use it to encrypt the column value, and then store the key and the encrypted value somewhere to be retrieved later. How exactly can I do this? I have a few choices:

  • I could define a view on the table as follows:

    1. Add the columns ENC_BALANCE and ENC_ACCOUNT_NAME to the table to store the encrypted values of the corresponding columns.

    2. Add another column named ENC_KEY to store the key used for encryption.

    3. Create a view called VW_ACCOUNTS defined as follows:

          CREATE OR REPLACE VIEW vw_accounts
          AS
             SELECT account_no.enc_balance AS balance
                  , enc_account_name AS account_name
               FROM accounts
          /
    4. Create INSTEAD OF triggers to handle updates and inserts to the view, if needed.

    5. Create a public synonym ACCOUNTS for the view VW_ACCOUNTS.

    6. Grant all privileges on VW_ACCOUNTS and revoke all privileges on ACCOUNTS.

    This arrangement ensures that the schema owner, as well as any users who have been given direct privileges on the ACCOUNTS table, ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Oracle PL/SQL Best Practices

Oracle PL/SQL Best Practices

Steven Feuerstein
Resilient Oracle PL/SQL

Resilient Oracle PL/SQL

Stephen B. Morris
Expert Oracle PL/SQL

Expert Oracle PL/SQL

Ron Hardman, Michael McLaughlin

Publisher Resources

ISBN: 0596005873Errata Page