Do My Essay For logo
  • My account
  • Order now
Order Now
Uncategorized

Need to write reason after executing the sql queries

3 min read
Posted on 
July 7th, 2022
Home Uncategorized Need to write reason after executing the sql queries

1) Connect to your Pluggable Database

2)

// Create Tables

create table department (

dep_id int primary key,

name varchar2(30)

);

create table employee (

dep_id references department,

name varchar2(30)

);

create table department_secrets (

dep_id references department,

secret varchar2(30)

);

3)

// FILL IN THE TABLES

insert into department values (1, ‘Research and Development’);

insert into department values (2, ‘Sales’ );

insert into department values (3, ‘Human Resources’ );

insert into employee values (2, ‘Peter’);

insert into employee values (3, ‘Julia’);

insert into employee values (3, ‘Sandy’);

insert into employee values (1, ‘Frank’);

insert into employee values (2, ‘Eric’ );

insert into employee values (1, ‘Joel’ );

insert into department_secrets values (1, ‘R+D Secret #1’ );

insert into department_secrets values (1, ‘R+D Secret #2’ );

insert into department_secrets values (2, ‘Sales Secret #1’);

insert into department_secrets values (2, ‘Sales Secret #2’);

insert into department_secrets values (3, ‘HR Secret #1’ );

insert into department_secrets values (3, ‘HR Secret #2’ );

// Allow any employee to see all secrets in their own department, but not any in any other departments.

4)

// Start by creating a package.

create or replace package pck_vpd
as
p_dep_id department.dep_id%type;

procedure set_dep_id(v_dep_id department.dep_id%type);

function predicate (obj_schema varchar2, obj_name varchar2) return varchar2;
end pck_vpd;
/

create or replace package body pck_vpd as

procedure set_dep_id(v_dep_id department.dep_id%type) is
begin
p_dep_id := v_dep_id;
end set_dep_id;

function predicate (obj_schema varchar2, obj_name varchar2) return varchar2 is
begin
return ‘dep_id = ‘ || p_dep_id;
end predicate;

end pck_vpd;
/

5)

// Define the trigger.

create or replace trigger trg_vpd
after logon on database
declare
v_dep_id department.dep_id%type;
begin
select dep_id into v_dep_id
from employee where upper(name) = user;

pck_vpd.set_dep_id(v_dep_id);
end;
/

QUESTION: When is this code triggered? What does it do when it is triggered?

6)

//Define the policy. The policy states which procedure is used to add a where clause part to the where clause if someone executes a select statement.

BEGIN

SYS.DBMS_RLS.ADD_POLICY(

object_schema => ‘SYSTEM’,

object_name => ‘department_secrets’,

policy_name => ’emp_vpd_policy’,

function_schema => ‘SYSTEM’,

policy_function => ‘pck_vpd.predicate’,

statement_types => ‘select,update,delete’

);

END;

/

7)

//Create some users.

create user frank identified by frank

create user peter identified by peter

create user julia identified by julia

//Grant the required privileges

grant all on department_secrets to frank;
grant all on department_secrets to peter;
grant all on department_secrets to julia;

grant create session to frank;
grant create session to peter;
grant create session to julia;

//Create a public synonym

create public synonym department_secrets for department_secrets;

8)

connect as frank and

select * from department_secrets;

QUESTION: What happened? Why?

connect as peter

select * from department_secrets;

QUESTION: What happened? Why?

Order an Essay Now & Get These Features For Free:

Turnitin Report

Formatting

Title Page

Citation

Outline

Place an Order
Share
Tweet
Share
Tweet
Calculate the price
Pages (275 words)
$0.00
Do My Essay For
Company
Legal
How Our Service is Used:
Do My Essay For essays are NOT intended to be forwarded as finalized work as it is only strictly meant to be used for research and study purposes. Do My Essay For does not endorse or condone any type of plagiarism.
Subscribe
No Spam
© 2023 Do My Essay For. All rights reserved.
Do My Essay For will be listed as ‘Do My Essay For’ on your bank statement.