Book Image

Oracle Database 12c Security Cookbook

By : Zoran Pavlovic, Maja Veselica
Book Image

Oracle Database 12c Security Cookbook

By: Zoran Pavlovic, Maja Veselica

Overview of this book

Businesses around the world are paying much greater attention toward database security than they ever have before. Not only does the current regulatory environment require tight security, particularly when dealing with sensitive and personal data, data is also arguably a company’s most valuable asset - why wouldn’t you want to protect it in a secure and reliable database? Oracle Database lets you do exactly that. It’s why it is one of the world’s leading databases – with a rich portfolio of features to protect data from contemporary vulnerabilities, it’s the go-to database for many organizations. Oracle Database 12c Security Cookbook helps DBAs, developers, and architects to better understand database security challenges. Let it guide you through the process of implementing appropriate security mechanisms, helping you to ensure you are taking proactive steps to keep your data safe. Featuring solutions for common security problems in the new Oracle Database 12c, with this book you can be confident about securing your database from a range of different threats and problems.
Table of Contents (18 chapters)
Oracle Database 12c Security Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface

Using code-based access control


In this recipe, you'll use code base access control with invoker's rights procedure.

Getting ready

To complete this recipe, you'll use a user who has a DBA role.

How to do it...

  1. Connect to the database as a user with a DBA role (for example, zoran), create proc_user, and grant him the create session privilege:

    SQL> create user proc_user identified by oracle1;
    SQL> grant create session to proc_user;
    
  2. Create table tbl1 and insert test data:

    SQL> create table tbl1(a number, b varchar2(30));
    SQL> insert into tbl1 values (1, 'old_value');
    SQL> commit;
    
  3. Create the invoker's rights procedure UpdateTbl1 and grant execute on that procedure to proc_user:

    CREATE OR REPLACE PROCEDURE UpdateTbl1 (x IN number,
           y IN varchar2)
      AUTHID CURRENT_USER
        AS
          BEGIN
           UPDATE ZORAN.TBL1
           SET b = y
            WHERE a = x;
        END;
        /
    SQL> grant execute on zoran.UpdateTbl1 to proc_user;
    
  4. Create the role proc_role and grant update on tbl1 to...