SlideShare a Scribd company logo
1 of 67
(
Lab Project
) (
2
)
Table of Contents
Introduction 4
Timeline 5
Conceptual Model: 6
Users: 6
Views: 7
Roles: 7
Logical Model: 8
Physical Model: 9
Security Implementation: 21
USER CREATION 21
CREATE ROLES AND GRANT PRIVILEGES21
Security Policy A: 22
Test Case scenario 1: 22
Test Case Scenario 2: 23
Test Case scenario 3: 23
Test case scenario 4: 23
Security Policy B: 24
Test case scenario 1: 24
Test Case Scenario 2: 24
Security Policy C: 25
Test case scenario 1: 25
Test case scenario 2: 26
Security Policy D: 27
Test case scenario 1: 27
Test case scenario 2: 28
Security Policy E: 29
Test case scenario 1: 29
Test case scenario 1: 34
Security Policy F: 36
Test case scenario 1: 36
Test case scenario 2: 39
Security Policy G: 40
CREATE TABLE 41
CREATE POLICY 41
CREATE SECURITY LEVELS: U, C, S, TS 41
CREATE SECURITY LABELS: U, C, S, TS 42
GRANT USERS PRIVILEGES TO THE TABLE 42
SET USER LEVELS43
APPLY THE POLICY TO THE USERLVL TABLE 44
INSERT DATA INTO USERLVL TABLE 44
VIEW ACCESS FOR EACH USER LEVEL 45
Introduction
Purest Retail Store has recently encountered database security
breaches. The database stores customer’s personal information
and their purchases, so it is important that only authorized users
have access to the data in the database. The company’s internal
IT staff built the database with no constraints on the tables to
prevent duplication and unauthorized users from viewing the
data.
The owner of the store lost lots of loyal customers due to the
breaches and tasked the Security Manager to find a solution to
ensure that the data in the database is more secure and only
accessible to authorized users. The security manager did a full
risk analysis and determined that the IT department needs to
establish better security practices and take the necessary
measurements to improve the security of the database and its
users. In addition, the security policy and plan should be
frequently reviewed and updated to reflect the growing changes
of the database and users. The following are the necessary
implementation of database security measures:
· Security Policy and Plan
· Security procedures
· Account setup for users that includes passwords
· Assigning roles and privileges to users
· Establishing Access Control
· Granting authorized users access to the databaseTimeline
Because the company has suffered great loss in both revenue
and customers, it is important that these security measures are
implemented immediately. The following is the timeline of
completing the security policy and procedures.
Conceptual Model:
The following table consists of all the users who have access to
the database. Each user is assigned a unique userid and
password, specific privileges, and a role. The following are
roles:
DBA Role – The DBA role will have full control of the database
and can review any activities conducted by any of the other
users
CustomerLookup Role – The customer lookup role allows
authorized users to select from the customers table and the
orders and order_detail table
ETLUSER Role – This role is for any authorized user to be able
to insert records into the table, delete, update and select.
Employee Role – allows authorized users to lookup their own
account.
Users:
User Name
Userid
Privileges
Database Access
ROLE
Jack Walker
JWALKER
CREATE SESSION
DBA
ADMIN01, EMP
Bev Smith
BSMITH
CREATE SESSION
Insert, Select, Update To CUSTOMER & Product
EMP
William Noton
WNOTON
CREATE SESSION
Insert, Select, Update To CUSTOMER & Product
EMP
Sheri Jackson
SJACKSON
CREATE SESSION
Insert, Select, Update To Order_Line and Orders
EMP
Lily Jones
LJONES
CREATE SESSION
Select on Customer, Orders
CUST_ORDER, EMP
Sean Kiles
SKILES
CREATE SESSION
Insert and Update On Customer and Orders
EMP
Lee Wiles
LWILES
CREATE SESSION
Delete, Insert on Any, Update on Any, Select on Any-
MANAGER
MANAGER01,EMPViews:
Views
Userid
Database Access
ROLE
Vw_customerOrder
LJONES
SELECT
CUST_ORDER
Vw_updateEmployeeAddr
ALL ACTIVE USERS
Update (EMP_ADDR)
EMP
Vw_UpdateCustomerInfo
BSMITH, WNOTON
UPDATE
vw_ViewEmployeeRecord
ALL ACTIVE USERS
SELECT
EMPRoles:
Roles
Userid
Database Access
ADMIN01
JWALKER
DBA
MANAGER01
LWILES
OBJECT PRIV
EMP
ALL ACTIVE USERS
SELECT & Update (EMP_ADDR) per user
CUST_ORDER
LJONES
SELECT on vw_customerOder
Logical Model:
Figure 1.1 Database ERD
Figure 1.2 Data Model Definition
Physical Model:
DDL
/*---------------------------------------------------*/
/* CREATE CUSTOMER TABLE */
/*---------------------------------------------------*/
DROP TABLE CUSTOMER CASCADE CONSTRAINTS;
CREATE TABLE CUSTOMER
(
CUS_ID NUMBER(10) NOT NULL,
CUS_LNAME VARCHAR2(35 BYTE),
CUS_FNAME VARCHAR2(25 BYTE),
CUS_PHONE VARCHAR2(25 BYTE),
CUS_ADDR VARCHAR2(40 BYTE),
CUS_CITY VARCHAR2(20 BYTE),
CUS_STATE VARCHAR2(2 BYTE),
CUS_ZIP VARCHAR2(10 BYTE),
Constraint PK_CUSID PRIMARY KEY (CUS_ID)
) ;
COMMENT ON TABLE CUSTOMER IS 'Contains the master
list of customers that have placed at least one order.';
COMMENT ON COLUMN CUSTOMER.CUS_ID IS 'Unique
system generated number.';
COMMENT ON COLUMN CUSTOMER.CUS_LNAME IS
'Customers last name.';
COMMENT ON COLUMN CUSTOMER.CUS_FNAME IS
'Customers first name.';
COMMENT ON COLUMN CUSTOMER.CUS_ADDR IS
'Customers street address.';
COMMENT ON COLUMN CUSTOMER.CUS_CITY IS 'The
City where the customer lives.';
COMMENT ON COLUMN CUSTOMER.CUS_STATE IS 'State
where the customer lives.';
COMMENT ON COLUMN CUSTOMER.CUS_ZIP IS 'Unique
identifier for a City and State location (United States).';
OUTPUT:
DESC CUSTOMER
Name Null Type
--------- -------- ------------
CUS_ID NOT NULL NUMBER(10)
CUS_LNAME VARCHAR2(35)
CUS_FNAME VARCHAR2(25)
CUS_PHONE VARCHAR2(25)
CUS_ADDR VARCHAR2(40)
CUS_CITY VARCHAR2(20)
CUS_STATE VARCHAR2(2)
CUS_ZIP VARCHAR2(10)
/*---------------------------------------------------*/
/* CREATE EMPLOYEE TABLE */
/*---------------------------------------------------*/
DROP TABLE EMPLOYEE CASCADE CONSTRAINTS;
CREATE TABLE EMPLOYEE
(
EMP_ID NUMBER(10) NOT NULL,
EMP_FNAME VARCHAR2(25 BYTE),
EMP_LNAME VARCHAR2(35 BYTE),
EMP_NAME VARCHAR2(25),
EMP_PHONE VARCHAR2(25 BYTE),
EMP_ADDR VARCHAR2(40 BYTE),
EMP_CITY VARCHAR2(30),
EMP_STATE VARCHAR2(2),
EMP_ZIP VARCHAR2(10 BYTE),
CONSTRAINT PK_EMPID PRIMARY KEY (EMP_ID)
);
COMMENT ON TABLE EMPLOYEE IS 'The Employee table
contains demographic information for each sales associates.';
COMMENT ON COLUMN EMPLOYEE.EMP_ID IS 'Unique
system generated number.';
COMMENT ON COLUMN EMPLOYEE.EMP_FNAME IS
'Employee''s first name.';
COMMENT ON COLUMN EMPLOYEE.EMP_LNAME IS
'Employee''s last name.';
COMMENT ON COLUMN EMPLOYEE.EMP_ADDR IS
'Employee street address.';
COMMENT ON COLUMN EMPLOYEE.EMP_CITY IS 'The
City where the Employee lives.';
COMMENT ON COLUMN EMPLOYEE.EMP_STATE IS 'State
where the Employee lives.';
COMMENT ON COLUMN EMPLOYEE.EMP_ZIP IS 'Unique
identifier for a City and State location (United States).';
OUTPUT:
/*---------------------------------------------------*/
/* CREATE PRODUCT TABLE */
/*---------------------------------------------------*/
DROP TABLE PRODUCT CASCADE CONSTRAINTS;
CREATE TABLE PRODUCT
(
PRO_ID NUMBER(10) NOT NULL,
PRO_DESC VARCHAR2(255 BYTE),
PRO_QTY NUMBER(10),
PRO_COST NUMBER(18,2),
CONSTRAINT PK_PROID PRIMARY KEY(PRO_ID)
);
COMMENT ON TABLE PRODUCT IS 'Each Product record
identifies an item that is available for a Customer to purchase.';
COMMENT ON COLUMN PRODUCT.PRO_ID IS 'Unique
system generated number.';
COMMENT ON COLUMN PRODUCT.PRO_DESC IS
'Production description.';
COMMENT ON COLUMN PRODUCT.PRO_COST IS 'Unit cost
of the product.';
OUTPUT:
/*---------------------------------------------------*/
/* CREATE ORDERS TABLE */
/*---------------------------------------------------*/
DROP TABLE ORDERS CASCADE CONSTRAINTS;
CREATE TABLE ORDERS
(
ORD_ID NUMBER(10) NOT NULL,
ORD_DATE DATE,
CUS_ID NUMBER(10),
EMP_ID NUMBER(10),
Constraint PK_ORDID PRIMARY KEY(ORD_ID),
Constraint FK_CUSID FOREIGN KEY (CUS_ID)
REFERENCES CUSTOMER,
CONSTRAINT FK_EMPID FOREIGN KEY (EMP_ID)
REFERENCES EMPLOYEE
);
COMMENT ON TABLE ORDERS IS 'Each Order record
represent a purchase made by a Customer.';
COMMENT ON COLUMN ORDERS.ORD_ID IS 'Unique
system generated number.';
COMMENT ON COLUMN ORDERS.ORD_Date IS 'Date and
time the order was entered, e.g., when the status changes.';
COMMENT ON COLUMN ORDERS.CUS_ID IS 'Unique
system generated number.';
COMMENT ON COLUMN ORDERS.EMP_ID IS 'Unique
system generated number.';
OUTPUT:
/*---------------------------------------------------*/
/* CREATE ORDER_LINE TABLE */
/*---------------------------------------------------*/
DROP TABLE ORDER_LINE CASCADE CONSTRAINTS;
CREATE TABLE ORDER_LINE
(
ORL_ID NUMBER(10) NOT NULL,
PRO_ID NUMBER(10),
ORL_QTY NUMBER(10),
ORD_ID NUMBER(10) NOT NULL,
ORL_TOTCOST NUMBER(18,2),
Constraint PK_ORL_ID PRIMARY KEY (ORL_ID),
Constraint FK_PROID FOREIGN KEY (PRO_ID)
REFERENCES PRODUCT,
Constraint FK_ORDID FOREIGN KEY (ORD_ID)
REFERENCES ORDERS
);
COMMENT ON TABLE ORDER_LINE IS 'Each Order Line
record identifies the item(s) placed on an Order.';
COMMENT ON COLUMN ORDER_LINE.ORL_ID IS 'Unique
system generated number.';
COMMENT ON COLUMN ORDER_LINE.PRO_ID IS 'Foreign
key to product.';
COMMENT ON COLUMN ORDER_LINE.ORL_QTY IS 'Total
quantity of the product ordered.';
COMMENT ON COLUMN ORDER_LINE.ORD_ID IS 'Foreign
key to orders.';
COMMENT ON COLUMN ORDER_LINE.ORL_TOTCOST IS
'Total cost of the order (ORDER_LINE.ORL_TOTQTY *
ORDER.ORD_COST).';
OUTPUT:
/*---------------------------------------------------*/
/* CREATE INDEX */
/*---------------------------------------------------*/
CREATE INDEX FK_ORDID ON ORDER_LINE(ORD_ID);
CREATE INDEX FK_PROID ON ORDER_LINE(PRO_ID);
CREATE INDEX FK_CUSID ON ORDERS(CUS_ID);
CREATE INDEX FK_EMPID ON ORDERS(EMP_ID);
DML:
/*---------------------------------------------------*/
/* CUSTOMER */
/*---------------------------------------------------*/
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(1,'FILARSKI','John','1628181183','54 Rogers City Street',
'Columbia', 'MD','21045');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(2,'DOPKE','John','4749616559','13 Posen Street', 'Columbia',
'MD','21045');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(3,'BARBER','Eustace','1038163575','53 Flint Street',
'Columbia', 'MD','21045');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(4,'CHOJNACKI','Chelsea','8047649647','44 Bay City Street',
'Germantown', 'MD','20876');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(5,'CIUPKA','John','2197269717','30 Wilson Street',
'Germantown', 'MD','20876');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(6,'BALTRUCZWIC','fname','3749008801','75 Posen Street',
'Germantown', 'MD','20876');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(7,'CALCUTT','Tena','3691697299','69 Westland Street', 'Elicott
City', 'MD', '21044');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(8,'GABRYSIAK','Martha','2667749123','20 Long Rapids
Street', 'Elicott City', 'MD', '21044');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(9,'CHOJNACKI','Bernadine','9238274028','68 Rogers City
Street', 'Silver Spring', 'MD','20910');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(10,'BURTON','Charles','1613454712','38 Harrisville Street',
'Silver Spring', 'MD','20910');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR, CUS_CITY, CUS_STATE, CUS_ZIP) values
(11,'GERARD','Eva','9209862959','14 Dearborn Road', 'Silver
Spring', 'MD','20910');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(12,'CARON','Charlotte','5792851541','44 Tawas Place', 'Silver
Spring', 'MD','20910');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(13,'DUMSCH','John','5806348205','65 Lachine Drive', 'College
Park', 'MD','20873');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(14,'GRULKE','Albert','7769502494','42 Flint Rd', 'College
Park', 'MD','20873');
Insert into CUSTOMER
(CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD
DR,CUS_CITY, CUS_STATE, CUS_ZIP) values
(15,'COPPICK','John','6525978039','71 Hillman Street', 'College
Park', 'MD','20873');
OUTPUT:
/*---------------------------------------------------*/
/* EMPLOYEE */
/*---------------------------------------------------*/
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(1,'Wiles','LEE','LWILES','4638143636','12 Caledonia Place',
'Columbia', 'MD','21045');
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(2,'Jones','Lily','LJONES','2618669777','14 Carolina Street',
'Columbia', 'MD','21045');
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(3,'Kiles','Sean','SKILES','6073493126','6 Oscoda Street',
'Columbia', 'MD','21045');
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(4,'Jackson','Sheri','SJACKSON','7266708260','17 Harrisville
Street', 'Washington', 'DC','20001');
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(5,'Noton','William','WNOTON','6984196073','71 Lincoln
Place', 'Germantown', 'MD','20876');
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(6,'SMITH','BEV','BSMITH','3078249316','41 Onaway Road',
'Elicott City', 'MD', '21044');
Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME,
EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY,
EMP_STATE, EMP_ZIP) values
(7,'Walker','Jack','JWALKER','9416111764','28 Barton City
Street', 'Silver Spring', 'MD','20910');
OUTPUT:
/*---------------------------------------------------*/
/* PRODUCT */
/*---------------------------------------------------*/
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(1,138.65,'Torque Wrench 3/4"drive preset Wr. 15A 150 ft-
lbs.',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(2,44.84,'Dial-Type Torque Wrench dial dual wr. 1/2" 0-175
ft-lbs.',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(3,182.9,'Impact Socket 3/4" Square Drive Double Square 1-
3/8',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(4,178.18,'Impact Socket 1" Square Drive Standard 3-
3/16',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(5,138.06,'CYLINDER ASSEMBLY - 1700 SERIES',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(6,144.55,'GUIDE HANDLE - 1700 SERIES',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(7,148.09,'CYL/CUTTERHEAD ASSEM. (1753-
8913CN)',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(8,148.09,'CYL/CUTTERHEAD ASSEMBLY (1752-
1713A)',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(9,152.22,'1752-1713CDX CYL/CUTTERHEAD
ASSEMBLY',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(10,152.22,'21124LK-1713LK CYL/CUTTERHEAD
ASSEMBLY',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(11,173.46,'ASSEMBLY 1753 CYL-1713PQ NUT
SPLITTER',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(12,330.99,'1752-1713T CYL/CUTTERHEAD
ASSEMBLY',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(13,384.68,'1752-1713TA CYL/CUTTERHEAD
ASSEMBLY',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(14,381.73,'1752-1713TC CYL/CUTTERHEAD
ASSEMBLY',1000);
Insert into PRODUCT
(PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values
(15,123.9,'Impact Socket 1" Square Drive Deep 3-3/16',1000);
OUTPUT:
/*---------------------------------------------------*/
/* ORDERS */
/*---------------------------------------------------*/
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (1,to_date('12-NOV-19','DD-MON-RR'),1,1);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (2,to_date('12-NOV-19','DD-MON-RR'),2,2);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (3,to_date('12-NOV-19','DD-MON-RR'),3,3);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (4,to_date('12-NOV-19','DD-MON-RR'),4,4);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (5,to_date('12-NOV-19','DD-MON-RR'),5,5);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (6,to_date('12-NOV-19','DD-MON-RR'),6,6);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (7,to_date('12-NOV-19','DD-MON-RR'),7,7);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (8,to_date('12-NOV-19','DD-MON-RR'),8,8);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (9,to_date('12-NOV-19','DD-MON-RR'),9,9);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (10,to_date('12-NOV-19','DD-MON-RR'),10,10);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (11,to_date('12-NOV-19','DD-MON-RR'),11,11);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (12,to_date('12-OCT-02','DD-MON-RR'),12,12);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (13,to_date('12-OCT-02','DD-MON-RR'),13,13);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (14,to_date('12-OCT-02','DD-MON-RR'),14,14);
Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID)
values (15,to_date('12-OCT-02','DD-MON-RR'),15,15);
OUTPUT:
/*---------------------------------------------------*/
/* ORDER_LINE */
/*---------------------------------------------------*/
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(1,1,1,1,138.65);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(2,2,1,2,44.84);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(3,3,1,3,182.9);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(4,4,1,4,178.18);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(5,5,1,5,138.06);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(6,6,1,6,144.55);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(7,7,1,7,148.09);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(8,8,1,8,148.09);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(9,9,1,9,152.22);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(10,10,1,10,152.22);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(11,11,1,11,173.46);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(12,12,1,12,330.99);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(13,13,1,13,384.68);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(14,14,1,14,381.73);
Insert into ORDER_LINE
(ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values
(15,15,1,15,123.9);
OUTPUT:
CREATE VIEW:
Create or Replace View vw_UpdateEmployeeAddr AS
(
Select EMP_ID, EMP_FNAME, EMP_LNAME, EMP_ADDR
FROM EMPLOYEE
WHERE EMP_Name = User
);
OUTPUT:
> Create or Replace View vw_ViewEmployeeRecord AS
(
Select *
FROM EMPLOYEE
WHERE EMP_Name = User
)
view VW_VIEWEMPLOYEERECORD created.
Create or Replace View vw_CustomerOrder AS
(
Select CUS_FNAME, CUS_LNAME, ORD_ID, ORD_DATE
FROM Customer c, Orders o
WHERE c.CUS_ID=o.CUS_ID
);
Create or Replace View vw_UpdateCustomerInfo AS
(
Select CUS_FNAME, CUS_LNAME, CUS_ADDR,
CUS_CITY, CUS_STATE, CUS_ZIP
FROM Customer
);
Security Implementation:
USER CREATION
CREATE USER LWILES IDENTIFIED BY aaaaaa1#;
CREATE USER LJONES IDENTIFIED BY bbbbb1b#;
CREATE USER SKILES IDENTIFIED BY ssssss2#;
CREATE USER SJACKSON IDENTIFIED BY jjjjjjjS2;
CREATE USER WNOTON IDENTIFIED BY wwwwwww3#;
CREATE USER BSMITH IDENTIFIED BY bssssss7#;
CREATE USER JWALKER IDENTIFIED BY wwwwww12#;
OUTPUT:
CREATE ROLES AND GRANT PRIVILEGES
CREATE ROLE EMP;
CREATE ROLE ADMIN01;
CREATE ROLE MANAGER01;
CREATE ROLE CUST_ORDER;
GRANTS
> GRANT DBA TO ADMIN01
GRANT succeeded.
> GRANT SELECT ON vw_CustomerOrder TO CUST_ORDER
GRANT succeeded.
> GRANT ALL ON CUSTOMER TO MANAGER01
GRANT succeeded.
> GRANT ALL ON ORDERS TO MANAGER01
GRANT succeeded.
> GRANT ALL ON ORDER_LINE TO MANAGER01
GRANT succeeded.
> GRANT ALL ON EMPLOYEE TO MANAGER01
GRANT succeeded.
> GRANT ALL ON PRODUCT TO MANAGER01
GRANT succeeded.
> GRANT UPDATE (EMP_ADDR) ON
vw_UpdateEmployeeAddr TO EMP
GRANT succeeded.
> GRANT CREATE SESSION TO LWILES, LJONES, SKILES,
SJACKSON, WNOTON, BSMITH, JWALKER
GRANT succeeded.
> GRANT ADMIN01 TO JWALKER
GRANT succeeded.
> GRANT MANAGER01 TO LWILES
GRANT succeeded.
> GRANT EMP TO LWILES, LJONES, SKILES, SJACKSON,
WNOTON, BSMITH, JWALKER
GRANT succeeded.
> GRANT CUST_ORDER TO LJONES
GRANT succeeded.
> GRANT INSERT, SELECT, UPDATE ON CUSTOMER TO
WNOTON, BSMITH
GRANT succeeded.
> GRANT INSERT, SELECT, UPDATE ON PRODUCT TO
WNOTON, BSMITH
GRANT succeeded.
> GRANT INSERT, SELECT, UPDATE ON ORDER_LINE TO
SJACKSON
GRANT succeeded.
> GRANT INSERT, SELECT, UPDATE ON ORDERS TO
SJACKSON
GRANT succeeded.
> GRANT UPDATE ON vw_UpdateCustomerInfo TO BSMITH,
WNOTON
GRANT succeeded.
> Grant SELECT ON vw_ViewEmployeeRecord TO EMP
Grant succeeded.
Security Policy A:Jack Walker is the only DBA and the only
person allowed full control of the database. Instead of granting
DBA to the user JWALKER, this user will be granted the role
ADMIN01. This will allow easy the company to easily and
quickly update the privileges for any DBA including
JWALKER.
Test Case scenario 1:To verify the privileges JWALKER has on
the DB668A01. He will connect as himself, create a test table,
insert a record, create a user, grant the user to the table and then
Drop the user and drop the test table.
> Connect JWALKER/wwwwww12#
Connected
> Show user
USER is JWALKER
> Drop table DB668A01.test1
table DB668A01.TEST1 dropped.
> Create table DB668A01.TEST1
( TestId number not null,
testname varchar2(25))
table DB668A01.TEST1 created.
> Insert Into DB668A01.TEST1 Values(1, 'Test Name')
1 rows inserted.
> Create User TESTUSER identified by test1
user TESTUSER created.
> Grant Resource, Connect to TESTUSER
Grant succeeded.
> GRANT SELECT ON DB668A01.TEST1 to TESTUSER
GRANT succeeded.
Connection created by CONNECT script command disconnected
Test Case Scenario 2:Connect as Testuser and select from table
DB668A01.TEST1
> Connect TESTUSER/test1
Connected
> Show user
USER is TESTUSER
> Select * from DB668A01.TEST1
TESTID TESTNAME
------ -------------------------
1 Test Name
Connection created by CONNECT script command disconnected
Test Case scenario 3: Connect as JWALKER, Drop User and
Test1
> Connect JWALKER/wwwwww12#
Connected
> Show user
USER is JWALKER
> Drop user TESTUSER
user TESTUSER dropped.
> Drop table DB668A01.test1
table DB668A01.TEST1 dropped.
Connection created by CONNECT script command disconnected
Test case scenario 4: Verify a user not granted the ADMIN01
Role cannot create a table on DB668A01.
> Connect LJONES/bbbbb1b#
Connected
> Show user
USER is LJONES
> Create table DB668A01.test1
( TestId number not null,
testname varchar2(25))
Error starting at line 6 in command:
Create table DB668A01.test1
( TestId number not null,
testname varchar2(25))
Error at Command Line:6 Column:0
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
Security Policy B:The EMP role was created to maintain and
manage how an employee can view and update his/her employee
record. This is so that we don’t have to grant privileges per each
user for the employee table. Because we want to restrict access
of what records the users can view and update, two stored
procedures were created: DB668A01.vw_UpdateEmployeeAddr
and DB668A01.vw_ViewEmployeeRecord.
Test case scenario 1: Connect as any user and update another
user’s address using the DB668A01.vw_UpdateEmployeeAddr.
The connect user should only be able to update his/her addr
info.
> Connect LWILES/aaaaaa1#
Connected
> Show user
USER is LWILES
> Update DB668A01.vw_UpdateEmployeeAddr
Set EMP_ADDR = '129 Piny Branch RD'
Where EMP_ID =2 –This is user LJONES
0 rows updated.
> Update DB668A01.vw_UpdateEmployeeAddr
Set EMP_ADDR = '129 Piny Branch RD'
Where EMP_ID =1 –This is user LWILES
1 rows updated.
Connection created by CONNECT script command disconnected
Test Case Scenario 2:Connect as any user to view
DB668A01.vw_ViewEmployeeRecord and select ALL rows to
verify the records the user can see. The connected user should
only be able to view his/her record.
> Connect SJACKSON/jjjjjjjS2
Connected
> Show User
USER is SJACKSON
> Select * from DB668A01.vw_ViewEmployeeRecord
EMP_ID EMP_FNAME EMP_LNAME EMP_NAME
EMP_PHONE EMP_ADDR EMP_CITY EMP_STATE EMP_ZIP
------ --------- --------- -------- --------- -------- -------- --------- --
-----
4 Sheri Jackson SJACKSON 7266708260 17 Harrisville
Street Washington DC 20001
Connection created by CONNECT script command disconnected
Security Policy C: The MANAGER01 role was created to
maintain and manage tables in the database for all managers.
The MANAGER01 role has Select, Update, Insert, and Delete
privileges on all the tables in the database.
Test case scenario 1: Connect as user LWILES, verify the role
of the user is Manager01, test the role by performing each of the
functions for the tables. Use Employee table as the performing
table since the Manager01 only has the ability to make changes
to this table.
Select * FROM DBA_ROLE_PRIVS
Where GRANTEE = 'LWILES';
GRANTEE GRANTED_ROLE ADMIN_OPTION
DEFAULT_ROLE
------- ------------ ------------ ------------
LWILES CONNECT NO YES
LWILES RESOURCE NO YES
LWILES MANAGER01 NO YES
LWILES EMP NO YES
> Connect LWILES/aaaaaa1#
Connected
> Show User
USER is LWILES
> INSERT INTO DB668A01.EMPLOYEE VALUES(8, 'Sam',
'Stephens', 'SSTEPHENS', '9910112003', 'APT 1 Spin Crest Dr',
'Highland', 'MD', '20777')
1 rows inserted.
> Select * FROM DB668A01.EMPLOYEE
EMP_ID EMP_FNAME EMP_LNAME
EMP_NAME EMP_PHONE EMP_ADDR
EMP_CITY EMP_STATE EMP_ZIP
---------- ------------------------- ----------------------------------- --
----------------------- ------------------------- -------------------------
--------------- ------------------------------ --------- ----------
8 Sam Stephens
SSTEPHENS 9910112003 APT 1 Spin
Crest Dr Highland MD 20777
1 LEE Wiles LWILES
4638143636 129 Piny Branch RD
Columbia MD 21045
2 Lily Jones LJONES
2618669777 14 Carolina Street
Columbia MD 21045
3 Sean Kiles SKILES
6073493126 6 Oscoda Street
Columbia MD 21045
4 Sheri Jackson
SJACKSON 7266708260 17 Harrisville
Street Washington DC 20001
5 William Noton
WNOTON 6984196073 71 Lincoln Place
Germantown MD 20876
6 BEV SMITH
BSMITH 3078249316 41 Onaway Road
Elicott City MD 21044
7 Jack Walker
JWALKER 9416111764 28 Barton City
Street Silver Spring MD 20910
8 rows selected
> Update DB668A01.EMPLOYEE
Set EMP_FNAME = 'Samantha'
Where EMP_ID = 8
1 rows updated.
> Delete From DB668A01.EMPLOYEE Where EMP_ID = 8
1 rows deleted.
Connection created by CONNECT script command disconnected
Test case scenario 2: Test another user to see if he/she can
perform the same functions as LWILES.
Results: As you can see William Notion is not able to View,
Insert, Update, or Delete an entry from
DB668A01.EMPLOYEE.
> Connect WNOTON/wwwwwww3#
Connected
> Show User
USER is WNOTON
> INSERT INTO DB668A01.EMPLOYEE VALUES(8, 'Sam',
'Stephens', 'SSTEPHENS', '9910112003', 'APT 1 Spin Crest Dr',
'Highland', 'MD', '20777')
Error starting at line 54 in command:
INSERT INTO DB668A01.EMPLOYEE VALUES(8, 'Sam',
'Stephens', 'SSTEPHENS', '9910112003', 'APT 1 Spin Crest Dr',
'Highland', 'MD', '20777')
Error at Command Line:54 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Select * FROM DB668A01.EMPLOYEE
Error starting at line 55 in command:
Select * FROM DB668A01.EMPLOYEE
Error at Command Line:55 Column:23
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Update DB668A01.EMPLOYEE
Set EMP_FNAME = 'Samantha'
Where EMP_ID = 8
Error starting at line 56 in command:
Update DB668A01.EMPLOYEE
Set EMP_FNAME = 'Samantha'
Where EMP_ID = 8
Error at Command Line:56 Column:16
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Delete From DB668A01.EMPLOYEE Where EMP_ID = 8
Error starting at line 59 in command:
Delete From DB668A01.EMPLOYEE Where EMP_ID = 8
Error at Command Line:59 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Connection created by CONNECT script command disconnected
Security Policy D: The CUST_ORDER role was created so
allow sales staff to view customer’s orders. A view was created
to display this information. The view is
DB668A01.vw_CustomerOrder and it was granted SELECT to
the CUST_ORDER role.
Test case scenario 1: Connect as a user and verify whether this
user has SELECT only on the view.
> Connect LJONES/bbbbb1b#
Connected
> Show User
USER is LJONES
> Select * FROM DB668A01.vw_CustomerOrder
CUS_FNAME CUS_LNAME
ORD_ID ORD_DATE
------------------------- ----------------------------------- ---------- --
-------
John FILARSKI 1 12-
NOV-19
John DOPKE 2 12-
NOV-19
Eustace BARBER 3 12-
NOV-19
Chelsea CHOJNACKI 4 12-
NOV-19
John CIUPKA 5 12-
NOV-19
fname BALTRUCZWIC 6
12-NOV-19
Tena CALCUTT 7 12-
NOV-19
Martha GABRYSIAK 8 12-
NOV-19
Bernadine CHOJNACKI 9
12-NOV-19
Charles BURTON 10 12-
NOV-19
Eva GERARD 11 12-
NOV-19
Charlotte CARON 12 12-
OCT-02
John DUMSCH 13 12-
OCT-02
Albert GRULKE 14 12-
OCT-02
John COPPICK 15 12-
OCT-02
15 rows selected
> Update DB668A01.vw_CustomerOrder
Set CUS_FNAME = 'Paula'
Where ORD_ID = 6
Error starting at line 55 in command:
Update DB668A01.vw_CustomerOrder
Set CUS_FNAME = 'Paula'
Where ORD_ID = 6
Error at Command Line:55 Column:16
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
Test case scenario 2: Connect as another user and verify
whether this user has access to this view
DB668A01.vw_CustomerOrder.
> Connect BSMITH/bssssss7#
Connected
> Show User
USER is BSMITH
> Select * FROM DB668A01.vw_CustomerOrder
Error starting at line 54 in command:
Select * FROM DB668A01.vw_CustomerOrder
Error at Command Line:54 Column:23
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Update DB668A01.vw_CustomerOrder
Set CUS_FNAME = 'Paula'
Where ORD_ID = 6
Error starting at line 55 in command:
Update DB668A01.vw_CustomerOrder
Set CUS_FNAME = 'Paula'
Where ORD_ID = 6
Error at Command Line:55 Column:16
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Connection created by CONNECT script command disconnected
Security Policy E: Users WNOTON and BSMITH were granted
INSERT, SELECT, and Update on Customer and Product table.
They are the only ones besides MANAGER01 and ADMIN01
allowed object privileges (except Delete) on these two tables.
Verify their privileges and verify no other user besides
MANAGER01 (LWILES) and ADMIN01 (JWALKER) have
access.
Test case scenario 1: Connect as the privileged user, WNOTON
and BSMITH and verify object privileges on Customer and
Product table.
USER#1:
> Connect BSMITH/bssssss7#
Connected
> Show User
USER is BSMITH
> INSERT INTO DB668A01.CUSTOMER VALUES(16,
'TANG', 'WANG', '2901110920', '34 Weather Drive', 'Silver
Spring', 'MD', '20910')
1 rows inserted.
> Update DB668A01.CUSTOMER
Set CUS_FNAME = 'WAGNER'
Where CUS_ID = 16
1 rows updated.
> Select * From DB668A01.CUSTOMER
CUS_ID CUS_LNAME CUS_FNAME
CUS_PHONE CUS_ADDR
CUS_CITY CUS_STATE CUS_ZIP
---------- ----------------------------------- ------------------------- --
----------------------- ---------------------------------------- ----------
---------- --------- ----------
16 TANG WAGNER
2901110920 34 Weather Drive Silver
Spring MD 20910
1 FILARSKI John
1628181183 54 Rogers City Street
Columbia MD 21045
2 DOPKE John
4749616559 13 Posen Street
Columbia MD 21045
3 BARBER Eustace
1038163575 53 Flint Street
Columbia MD 21045
4 CHOJNACKI Chelsea
8047649647 44 Bay City Street
Germantown MD 20876
5 CIUPKA John
2197269717 30 Wilson Street
Germantown MD 20876
6 BALTRUCZWIC fname
3749008801 75 Posen Street
Germantown MD 20876
7 CALCUTT Tena
3691697299 69 Westland Street Elicott
City MD 21044
8 GABRYSIAK Martha
2667749123 20 Long Rapids Street
Elicott City MD 21044
9 CHOJNACKI Bernadine
9238274028 68 Rogers City Street Silver
Spring MD 20910
10 BURTON Charles
1613454712 38 Harrisville Street Silver
Spring MD 20910
11 GERARD Eva
9209862959 14 Dearborn Road Silver
Spring MD 20910
12 CARON Charlotte
5792851541 44 Tawas Place Silver
Spring MD 20910
13 DUMSCH John
5806348205 65 Lachine Drive
College Park MD 20873
14 GRULKE Albert
7769502494 42 Flint Rd College
Park MD 20873
15 COPPICK John
6525978039 71 Hillman Street
College Park MD 20873
16 rows selected
> Delete From DB668A01.CUSTOMER Where CUS_ID= 16
Error starting at line 62 in command:
Delete From DB668A01.CUSTOMER Where CUS_ID= 16
Error at Command Line:62 Column:21
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
> Connect BSMITH/bssssss7#
Connected
> Show User
USER is BSMITH
> INSERT INTO DB668A01.PRODUCT VALUES(16, 'Black
TShirt Small', 1000, 3000.99)
1 rows inserted.
> Update DB668A01.PRODUCT
Set PRO_COST = '3000.00'
Where PRO_ID = 16
1 rows updated.
> Select * From DB668A01.PRODUCT
PRO_ID PRO_DESC
PRO_QTY PRO_COST
---------- ----------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------
----------------------------------------- ---------- ------------------
16 Black TShirt Small
1000 3000
1 Torque Wrench 3/4"drive preset Wr. 15A 150 ft-lbs.
1000 138.65
2 Dial-Type Torque Wrench dial dual wr. 1/2" 0-175
ft-lbs.
1000 44.84
3 Impact Socket 3/4" Square Drive Double Square 1-3/8
1000 182.9
4 Impact Socket 1" Square Drive Standard 3-3/16
1000 178.18
5 CYLINDER ASSEMBLY - 1700 SERIES
1000 138.06
6 GUIDE HANDLE - 1700 SERIES
1000 144.55
7 CYL/CUTTERHEAD ASSEM. (1753-8913CN)
1000 148.09
8 CYL/CUTTERHEAD ASSEMBLY (1752-1713A)
1000 148.09
9 1752-1713CDX CYL/CUTTERHEAD ASSEMBLY
1000 152.22
10 21124LK-1713LK CYL/CUTTERHEAD ASSEMBLY
1000 152.22
11 ASSEMBLY 1753 CYL-1713PQ NUT SPLITTER
1000 173.46
12 1752-1713T CYL/CUTTERHEAD ASSEMBLY
1000 330.99
13 1752-1713TA CYL/CUTTERHEAD ASSEMBLY
1000 384.68
14 1752-1713TC CYL/CUTTERHEAD ASSEMBLY
1000 381.73
15 Impact Socket 1" Square Drive Deep 3-3/16
1000 123.9
16 rows selected
> Delete From DB668A01.PRODUCT Where PRO_ID= 16
Error starting at line 62 in command:
Delete From DB668A01.PRODUCT Where PRO_ID= 16
Error at Command Line:62 Column:21
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
USER#2:
> Connect WNOTON/wwwwwww3#
Connected
> Show User
USER is WNOTON
> INSERT INTO DB668A01.CUSTOMER VALUES(17,
'TANG', 'Stephy', '2901110920', '34 Weather Drive', 'Silver
Spring', 'MD', '20910')
1 rows inserted.
> Update DB668A01.CUSTOMER
Set CUS_FNAME = 'Stephany'
Where CUS_ID = 17
1 rows updated.
> Select * From DB668A01.CUSTOMER
CUS_ID CUS_LNAME CUS_FNAME
CUS_PHONE CUS_ADDR
CUS_CITY CUS_STATE CUS_ZIP
---------- ----------------------------------- ------------------------- --
----------------------- ---------------------------------------- ----------
---------- --------- ----------
16 TANG WAGNER
2901110920 34 Weather Drive Silver
Spring MD 20910
17 TANG Stephany
2901110920 34 Weather Drive Silver
Spring MD 20910
1 FILARSKI John
1628181183 54 Rogers City Street
Columbia MD 21045
2 DOPKE John
4749616559 13 Posen Street
Columbia MD 21045
3 BARBER Eustace
1038163575 53 Flint Street
Columbia MD 21045
4 CHOJNACKI Chelsea
8047649647 44 Bay City Street
Germantown MD 20876
5 CIUPKA John
2197269717 30 Wilson Street
Germantown MD 20876
6 BALTRUCZWIC fname
3749008801 75 Posen Street
Germantown MD 20876
7 CALCUTT Tena
3691697299 69 Westland Street Elicott
City MD 21044
8 GABRYSIAK Martha
2667749123 20 Long Rapids Street
Elicott City MD 21044
9 CHOJNACKI Bernadine
9238274028 68 Rogers City Street Silver
Spring MD 20910
10 BURTON Charles
1613454712 38 Harrisville Street Silver
Spring MD 20910
11 GERARD Eva
9209862959 14 Dearborn Road Silver
Spring MD 20910
12 CARON Charlotte
5792851541 44 Tawas Place Silver
Spring MD 20910
13 DUMSCH John
5806348205 65 Lachine Drive
College Park MD 20873
14 GRULKE Albert
7769502494 42 Flint Rd College
Park MD 20873
15 COPPICK John
6525978039 71 Hillman Street
College Park MD 20873
17 rows selected
> Delete From DB668A01.CUSTOMER Where CUS_ID= 17
Error starting at line 74 in command:
Delete From DB668A01.CUSTOMER Where CUS_ID= 17
Error at Command Line:74 Column:21
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
> Connect WNOTON/wwwwwww3#
Connected
> Show User
USER is WNOTON
> INSERT INTO DB668A01.PRODUCT VALUES(17, 'White
TShirt Small', 1000, 3000.99)
1 rows inserted.
> Update DB668A01.PRODUCT
Set PRO_COST = '3000.00'
Where PRO_ID = 17
1 rows updated.
> Select * From DB668A01.PRODUCT
PRO_ID PRO_DESC
PRO_QTY PRO_COST
---------- ----------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------
----------------------------------------- ---------- ------------------
16 Black TShirt Small
1000 3000
17 White TShirt Small
1000 3000
1 Torque Wrench 3/4"drive preset Wr. 15A 150 ft-lbs.
1000 138.65
2 Dial-Type Torque Wrench dial dual wr. 1/2" 0-175
ft-lbs.
1000 44.84
3 Impact Socket 3/4" Square Drive Double Square 1-3/8
1000 182.9
4 Impact Socket 1" Square Drive Standard 3-3/16
1000 178.18
5 CYLINDER ASSEMBLY - 1700 SERIES
1000 138.06
6 GUIDE HANDLE - 1700 SERIES
1000 144.55
7 CYL/CUTTERHEAD ASSEM. (1753-8913CN)
1000 148.09
8 CYL/CUTTERHEAD ASSEMBLY (1752-1713A)
1000 148.09
9 1752-1713CDX CYL/CUTTERHEAD ASSEMBLY
1000 152.22
10 21124LK-1713LK CYL/CUTTERHEAD ASSEMBLY
1000 152.22
11 ASSEMBLY 1753 CYL-1713PQ NUT SPLITTER
1000 173.46
12 1752-1713T CYL/CUTTERHEAD ASSEMBLY
1000 330.99
13 1752-1713TA CYL/CUTTERHEAD ASSEMBLY
1000 384.68
14 1752-1713TC CYL/CUTTERHEAD ASSEMBLY
1000 381.73
15 Impact Socket 1" Square Drive Deep 3-3/16
1000 123.9
17 rows selected
> Delete From DB668A01.PRODUCT Where PRO_ID= 17
Error starting at line 74 in command:
Delete From DB668A01.PRODUCT Where PRO_ID= 17
Error at Command Line:74 Column:21
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
Test case scenario 1: Connect as another user and verify object
privileges on these tables Customer and Product table.
Result: As you can see indicated in red that user SJACKSON
does not have sufficient privilege to view the PRODUCT and
CUSTOMER Table in Database DB668A01 and cannot perform
any object privileges.
> Connect SJACKSON/jjjjjjjS2
Connected
> Show User
USER is SJACKSON
> INSERT INTO DB668A01.PRODUCT VALUES(16, 'White
TShirt Small', 1000, 3000.99)
Error starting at line 66 in command:
INSERT INTO DB668A01.PRODUCT VALUES(16, 'White
TShirt Small', 1000, 3000.99)
Error at Command Line:66 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Update DB668A01.PRODUCT
Set PRO_COST = '3000.00'
Where PRO_ID = 16
Error starting at line 68 in command:
Update DB668A01.PRODUCT
Set PRO_COST = '3000.00'
Where PRO_ID = 16
Error at Command Line:68 Column:16
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Select * From DB668A01.PRODUCT
Error starting at line 72 in command:
Select * From DB668A01.PRODUCT
Error at Command Line:72 Column:23
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Delete From DB668A01.PRODUCT Where PRO_ID= 16
Error starting at line 74 in command:
Delete From DB668A01.PRODUCT Where PRO_ID= 16
Error at Command Line:74 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> INSERT INTO DB668A01.CUSTOMER VALUES(16,
'TANG', 'Stephy', '2901110920', '34 Weather Drive', 'Silver
Spring', 'MD', '20910')
Error starting at line 76 in command:
INSERT INTO DB668A01.CUSTOMER VALUES(16, 'TANG',
'Stephy', '2901110920', '34 Weather Drive', 'Silver Spring',
'MD', '20910')
Error at Command Line:76 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Update DB668A01.CUSTOMER
Set CUS_FNAME = 'Stephany'
Where CUS_ID = 16
Error starting at line 78 in command:
Update DB668A01.CUSTOMER
Set CUS_FNAME = 'Stephany'
Where CUS_ID = 16
Error at Command Line:78 Column:16
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Select * From DB668A01.CUSTOMER
Error starting at line 82 in command:
Select * From DB668A01.CUSTOMER
Error at Command Line:82 Column:23
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Delete From DB668A01.CUSTOMER Where CUS_ID= 16
Error starting at line 84 in command:
Delete From DB668A01.CUSTOMER Where CUS_ID= 16
Error at Command Line:84 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Connection created by CONNECT script command disconnected
Security Policy F: User SJACKSON was granted INSERT,
SELECT, and Update on ORDERS and ORDER_LINE table.
This user is the only user besides MANAGER01 and ADMIN01
allowed object privileges (except Delete) on these two tables.
Verify the user privileges and verify another user besides
MANAGER01 (LWILES) and ADMIN01 (JWALKER) don’t
have access.
Test case scenario 1: Connect as the privileged user,
SJACKSON and verify object privileges on ORDERS and
ORDER_LINE table.
> Connect SJACKSON/jjjjjjjS2
Connected
> Show User
USER is SJACKSON
> INSERT INTO DB668A01.ORDERS VALUES(16,
to_date('12-NOV-19','DD-MON-RR'), 5, 3)
1 rows inserted.
> Update DB668A01.ORDERS
Set CUS_ID = 1
Where ORD_ID = 16
1 rows updated.
> Select * from DB668A01.ORDERS
ORD_ID ORD_DATE CUS_ID EMP_ID
---------- --------- ---------- ----------
16 12-NOV-19 1 3
1 12-NOV-19 1 1
2 12-NOV-19 2 2
3 12-NOV-19 3 3
4 12-NOV-19 4 4
5 12-NOV-19 5 5
6 12-NOV-19 6 6
7 12-NOV-19 7 7
8 12-NOV-19 8 1
9 12-NOV-19 9 2
10 12-NOV-19 10 3
11 12-NOV-19 11 4
12 12-OCT-02 12 5
13 12-OCT-02 13 6
14 12-OCT-02 14 7
15 12-OCT-02 15 7
16 rows selected
> DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16
Error starting at line 59 in command:
DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16
Error at Command Line:59 Column:21
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
> INSERT INTO DB668A01.ORDER_LINE VALUES(16, 1,
5,16, 139.10)
1 rows inserted.
> Update DB668A01.ORDER_LINE
Set ORL_TOTCOST = 150.14
Where ORL_ID = 16
1 rows updated.
> Select * from DB668A01.ORDER_LINE
ORL_ID PRO_ID ORL_QTY ORD_ID
ORL_TOTCOST
---------- ---------- ---------- ---------- ------------------
16 1 5 16 150.14
1 1 1 1 138.65
2 2 1 2 44.84
3 3 1 3 182.9
4 4 1 4 178.18
5 5 1 5 138.06
6 6 1 6 144.55
7 7 1 7 148.09
8 8 1 8 148.09
9 9 1 9 152.22
10 10 1 10 152.22
11 11 1 11 173.46
12 12 1 12 330.99
13 13 1 13 384.68
14 14 1 14 381.73
15 15 1 15 123.9
16 rows selected
> DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID
= 16
Error starting at line 69 in command:
DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID =
16
Error at Command Line:69 Column:21
Error report:
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username
or password
without the appropriate privilege. This error also occurs
if
attempting to install a database without the necessary
operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this
error may occur
if the user was granted the necessary privilege at a
higher label
than the current login.
*Action: Ask the database administrator to perform the
operation or grant
the required privileges.
For Trusted Oracle users getting this error although
granted the
the appropriate privilege at a higher label, ask the
database
administrator to regrant the privilege at the appropriate
label.
Connection created by CONNECT script command disconnected
Test case scenario 2: Connect as another user besides
Manager01 and Admin01 users and see if they have object
privilege on Orders and Order_line Tables.
> Connect SKILES/ssssss2#
Connected
> Show User
USER is SKILES
> INSERT INTO DB668A01.ORDERS VALUES(16,
to_date('12-NOV-19','DD-MON-RR'), 5, 3)
Error starting at line 51 in command:
INSERT INTO DB668A01.ORDERS VALUES(16, to_date('12-
NOV-19','DD-MON-RR'), 5, 3)
Error at Command Line:51 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Update DB668A01.ORDERS
Set CUS_ID = 1
Where ORD_ID = 16
Error starting at line 53 in command:
Update DB668A01.ORDERS
Set CUS_ID = 1
Where ORD_ID = 16
Error at Command Line:53 Column:16
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Select * from DB668A01.ORDERS
Error starting at line 57 in command:
Select * from DB668A01.ORDERS
Error at Command Line:57 Column:23
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16
Error starting at line 59 in command:
DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16
Error at Command Line:59 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> INSERT INTO DB668A01.ORDER_LINE VALUES(16, 1,
5,16, 139.10)
Error starting at line 61 in command:
INSERT INTO DB668A01.ORDER_LINE VALUES(16, 1, 5,16,
139.10)
Error at Command Line:61 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Update DB668A01.ORDER_LINE
Set ORL_TOTCOST = 150.14
Where ORL_ID = 16
Error starting at line 63 in command:
Update DB668A01.ORDER_LINE
Set ORL_TOTCOST = 150.14
Where ORL_ID = 16
Error at Command Line:63 Column:16
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> Select * from DB668A01.ORDER_LINE
Error starting at line 67 in command:
Select * from DB668A01.ORDER_LINE
Error at Command Line:67 Column:23
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
> DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID
= 16
Error starting at line 69 in command:
DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID =
16
Error at Command Line:69 Column:21
Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
Security Policy G: Create a policy to define four levels of
security for the User Table. The policy should be as follows for
the following individuals.
USR_ID
USR_NAME
USR_SAL
USR_DEPT
USR_SECLV
001
JWALKER
95000
C100
TS
002
LWILES
75000
C200
S
003
BSMITH
60000
C200
C
004
WNOTON
60000
C200
C
005
SJACKSON
65000
C200
C
006
SKILES
65000
C200
C
007
LJONES
55000
C300
U
CREATE TABLE
CREATE TABLE DB668A01.USERLVL
(
USR_ID NUMBER NOT NULL,
USR_NAME VARCHAR2(25),
USR_SAL NUMBER,
USR_DEPT VARCHAR2(25)
);
CREATE POLICY
EXECUTE SA_SYSDBA.CREATE_POLICY('USROLS',
'USR01', 'READ_CONTROL');
CREATE SECURITY LEVELS: U, C, S, TS
EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS',
1201, 'U', 'UNCLASSIFIED');
EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS',
2201, 'C', 'CONFIDENTIAL');
EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS',
3201, 'S', 'SENSITIVE');
EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS',
4201, 'TS', 'TOP_SECRET');
CREATE SECURITY LABELS: U, C, S, TS
EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS',
1201, 'U');
EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS',
2201, 'C');
EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS',
3201, 'S');
EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS',
4201, 'TS');
GRANT USERS PRIVILEGES TO THE TABLE
GRANT SELECT ON DB668A01.USERLVL TO LJONES;
GRANT SELECT ON DB668A01.USERLVL TO SKILES;
GRANT SELECT ON DB668A01.USERLVL TO BSMITH;
GRANT SELECT ON DB668A01.USERLVL TO WNOTON;
GRANT SELECT ON DB668A01.USERLVL TO SJACKSON;
GRANT SELECT ON DB668A01.USERLVL TO LWILES;
GRANT SELECT ON DB668A01.USERLVL TO JWALKER;
SET USER LEVELS
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'LJONES', 'U');
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'SKILES', 'C');
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'BSMITH', 'C');
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'WNOTON', 'C');
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'SJACKSON', 'C');
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'LWILES', 'S');
EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS',
'JWALKER', 'TS');
APPLY THE POLICY TO THE USERLVL TABLE
EXECUTE
SA_POLICY_ADMIN.APPLY_TABLE_POLICY('USROLS',
'DB668A01', 'USERLVL');
INSERT DATA INTO USERLVL TABLE
INSERT INTO DB668A01.USERLVL VALUES(001,
'JWALKER', 95000, 'C100', 4201);
INSERT INTO DB668A01.USERLVL VALUES(002, 'LWILES',
75000, 'C200', 3201);
INSERT INTO DB668A01.USERLVL VALUES(003, 'BSMITH',
60000, 'C200', 2201);
INSERT INTO DB668A01.USERLVL VALUES(004,
'WNOTON', 60000, 'C200', 2201);
INSERT INTO DB668A01.USERLVL VALUES(005,
'SJACKSON', 65000, 'C200', 2201);
INSERT INTO DB668A01.USERLVL VALUES(006, 'SKILES',
65000, 'C200', 2201);
INSERT INTO DB668A01.USERLVL VALUES(007, 'LJONES',
55000, 'C300', 1201);
VIEW ACCESS FOR EACH USER LEVEL
User LWILES – S level
CONNECT LWILES/aaaaaa1#;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
User LJONES – U level
CONNECT LJONES/bbbbb1b#;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
Users SKILES, SJACKSON, WNOTON, & BSMITH – C level
CONNECT SKILES/ssssss2#;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
CONNECT SJACKSON/jjjjjjjS2;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
CONNECT WNOTON/wwwwwww3#;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
CONNECT BSMITH/bssssss7#;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
User JWALKER – TS Level
CONNECT JWALKER/wwwwww12#;
SHOW USER;
SELECT * FROM DB668A01.USERLVL;
END OF TESTING AND POLICY IMPLEMENTATION
ORDER_DETAIL
ORL_ID
ORD_ID
ORL_TOTCOST
ORL_QTY
ORL_QTY
ORDER_LINE
ORL_ID
ORD_ID
PRO_ID
ORL_QTY
ORL_TOTCOST
Taken by
EMPLOYEE
EMP_ID
EMP_ADDR
EMP_FNAME
EMP_LNAME
EMP_PHONE
EMP_ZIP
EMP_CITY
EMP_STATE
Contains
In/Has
Customer Order
PRODUCT
PRO_ID
PRO_COST
PRO_QTY
PRO_DESC
ORDERS
ORD_ID
ORD_DATE
CUS_ID
EMP_ID
CUSTOMER
CUS_ID
CUS_FNAME
CUS_LNAME
CUS_ADDR
CUS_CITY
CUS_STATE
CUS_ZIP
CUS_PHONE
Microsoft Office
Excel Worksheet
CUSTOMERLogical Data Model DefinitionsPhysical Data
Model DefinitionsEntity NameEntity DefinitionAttribute
NameAttribute DefinitionColumn Datatype Column Is
PK?Column Is FK?CustomerStores customer's contact
information for order record keeping, sales contact, and follow
ups. CUS_IDThe customer's unique indentification number that
is auto generated during insert.NUMBERYesNoCustomerStores
customer's contact information for order record keeping, sales
contact, and follow ups. CUS_FNAMEThe first name of the
customerVARCHAR2(25)NoNoCustomerStores customer's
contact information for order record keeping, sales contact, and
follow ups. CUS_LNAMEThe last name of the
customerVARCHAR2(25)NoNoCustomerStores customer's
contact information for order record keeping, sales contact, and
follow ups. CUS_ADDRThe address of the
customerVARCHAR2(100)NoNoCustomerStores customer's
contact information for order record keeping, sales contact, and
follow ups. CUS_CITYThe city name of the customer's
addressVARCHAR2(30)NoNoCustomerStores customer's
contact information for order record keeping, sales contact, and
follow ups. CUS_STATEThe state of the customer's
addressVARCHAR2(2)NoNoCustomerStores customer's contact
information for order record keeping, sales contact, and follow
ups. CUS_ZIPThe zipcode of the customer's
addressVARCHAR2(10)NoNoCustomerStores customer's
contact information for order record keeping, sales contact, and
follow ups. CUS_PHONEThe contact phone number for the
customerVARCHAR2(25)NoNo
EMPLOYEELogical Data Model DefinitionsPhysical Data
Model DefinitionsEntity NameEntity DefinitionAttribute
NameAttribute DefinitionColumn Datatype Column Is
PK?Column Is FK?EMPLOYEEStores the employee's contact
information, date hired, job title and current employed status.
EMP_IDThe unique identifier assigned to each employee upon
inserting the record into the database.
NUMBERYesNoEMPLOYEEStores the employee's contact
information, date hired, job title and current employed status.
EMP_FNAMEThe first name of the
employeeVARCHAR2(25)NoNoEMPLOYEEStores the
employee's contact information, date hired, job title and current
employed status. EMP_LNAMEThe last name of the
employeeVARCHAR2(25)NoNoEMPLOYEEStores the
employee's contact information, date hired, job title and current
employed status. EMP_ADDRThe first and second line address
of the employeeVARCHAR2(100)NoNoEMPLOYEEStores the
employee's contact information, date hired, job title and current
employed status. EMP_CITYThe city name of the employee's
addressVARCHAR2(30)NoNoEMPLOYEEStores the employee's
contact information, date hired, job title and current employed
status. EMP_STATEThe state of the employee's
addressVARCHAR2(2)NoNoEMPLOYEEStores the employee's
contact information, date hired, job title and current employed
status. EMP_ZIPThe zipcode of the employee's
addressVARCHAR2(10)NoNoEMPLOYEEStores the employee's
contact information, date hired, job title and current employed
status. EMP_PHONEThe contact phone number for the
employeeVARCHAR(25)NoNo
PRODUCTLogical Data Model DefinitionsPhysical Data Model
DefinitionsEntity NameEntity DefinitionAttribute
NameAttribute DefinitionColumn Datatype Column Is
PK?Column Is FK?PRODUCTThe products offered by the store.
It includes a description of the product, the original quantity per
productID, the price, any discounts and stock update on
quantity. PRO_IDThe unique identifier for each Product ordered
for the store.NumberYesNoPRODUCTThe products offered by
the store. It includes a description of the product, the original
quantity per productID, the price, any discounts and stock
update on quantity. PRO_DESCDetail description of what the
product is. VARCHAR2(100)NoNoPRODUCTThe products
offered by the store. It includes a description of the product, the
original quantity per productID, the price, any discounts and
stock update on quantity. PRO_COSTThe original and retail
price of the product.NUMBER(19,4)NoNoPRODUCTThe
products offered by the store. It includes a description of the
product, the original quantity per productID, the price, any
discounts and stock update on quantity. PRO_QTYThe total
quantity of the productNumberNoNo
ORDERSLogical Data Model DefinitionsPhysical Data Model
DefinitionsEntity NameEntity DefinitionAttribute
NameAttribute DefinitionColumn Datatype Column Is
PK?Column Is FK?ORDERSThe orders entity is the summary
version of the order placed by the customer. It includes the
EmployeeID and CustomerID for record keeping.ORD_IDThe
unique identifier for each order placed by a
customerNUMBERYesNoORDERSThe orders entity is the
summary version of the order placed by the customer. It
includes the EmployeeID and CustomerID for record
keeping.ORD_DATEThe date of when the order was
completed.DATENoNoORDERSThe orders entity is the
summary version of the order placed by the customer. It
includes the EmployeeID and CustomerID for record
keeping.EMP_IDThe employeeID of the sales rep who sold the
product(s) to the customer. NUMBERNoYesORDERSThe orders
entity is the summary version of the order placed by the
customer. It includes the EmployeeID and CustomerID for
record keeping.CUS_IDThe customerID belonging purchased
the itemsNUMBERNoYes
ORDER_LINELogical Data Model DefinitionsPhysical Data
Model DefinitionsEntity NameEntity DefinitionAttribute
NameAttribute DefinitionColumn Datatype Column Is
PK?Column Is FK?ORDER_LINEThe list of items per line for
each orderNumber. This table contains the productId, quantity
sold per productId, orderstatus and price it was sold at.
ORL_IDThe unique identifier of each line for every item in an
order. NUMBERYesNoORDER_LINEThe list of items per line
for each orderNumber. This table contains the productId,
quantity sold per productId, orderstatus and price it was sold at.
ORD_IDThe OrderNumber from the orders table of the
completed purchase. INTEGERNoYesORDER_LINEThe list of
items per line for each orderNumber. This table contains the
productId, quantity sold per productId, orderstatus and price it
was sold at. PRO_IDthe Unique productID of the product
soldNUMBERNoYesORDER_LINEThe list of items per line for
each orderNumber. This table contains the productId, quantity
sold per productId, orderstatus and price it was sold at.
ORD_QTYThe number of item(s) sold per productIDNUMBER
NoNoORDER_LINEThe list of items per line for each
orderNumber. This table contains the productId, quantity sold
per productId, orderstatus and price it was sold at.
ORD_TOTCOSTThe Price of the time sold in the
order.NUMBER(19,4)NoNo
vw_CUSODRSLogical Data Model DefinitionsPhysical Data
Model DefinitionsEntity NameEntity DefinitionAttribute
NameAttribute DefinitionTable NameColumn NameColumn
DatatypeVW_CUST_ORDThe customer's info and
ordersCUS_IDThe unique identifier of each
customer.VW_CUST_ORD_STATUSC.CUS_IDNUMBERVW_C
UST_ORDThe customer's info and ordersCUS_FNAMEThe first
name of the
customerVW_CUST_ORD_STATUSC.CUS_FNAMEVARCHAR
2(25)VW_CUST_ORDThe customer's info and
ordersCUS_LNAMEThe last name of the
customerVW_CUST_ORD_STATUSC.CUS_LNAMEVARCHAR
2(25)VW_CUST_ORDThe customer's info and
ordersCUS_ADDRThe first line address of the
customerVW_CUST_ORD_STATUSC.CUS_ADDRVARCHAR2
(40)VW_CUST_ORDThe customer's info and
ordersCUS_ZIPThe zipcode of the customer's
addressVW_CUST_ORD_STATUSC.CUS_ZIPVARCHAR2(10)
VW_CUST_ORDThe customer's info and ordersORD_IDThe
unique order number tied to a customer's
accountVW_CUST_ORD_STATUSO.ORD_IDNUMBERVW_C
UST_ORDThe customer's info and ordersORD_DATEThe date
the order was completed and tied to an OrderNumber and
customer VW_CUST_ORD_STATUSO.ORD_DATEDATE

More Related Content

Similar to LAB PROJECT SECURITY

1585625790_SQL-SESSION1.pptx
1585625790_SQL-SESSION1.pptx1585625790_SQL-SESSION1.pptx
1585625790_SQL-SESSION1.pptxMullaMainuddin
 
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleUnderstanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleGuatemala User Group
 
Oracle Data Redaction
Oracle Data RedactionOracle Data Redaction
Oracle Data RedactionAlex Zaballa
 
SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015Régis Castéran
 
Oracle Data Redaction - UKOUG - TECH14
Oracle Data Redaction - UKOUG - TECH14Oracle Data Redaction - UKOUG - TECH14
Oracle Data Redaction - UKOUG - TECH14Alex Zaballa
 
Data Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your DatabaseData Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your DatabaseMichael Rosenblum
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIINi
 
Windows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.com
Windows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.comWindows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.com
Windows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.comMichael Gough
 
Getting Started with Nastel AutoPilot Business Views and Policies - a Tutorial
Getting Started with Nastel AutoPilot Business Views and Policies - a TutorialGetting Started with Nastel AutoPilot Business Views and Policies - a Tutorial
Getting Started with Nastel AutoPilot Business Views and Policies - a TutorialSam Garforth
 
Database Management Systems and SQL SERVER.pptx
Database Management Systems and SQL SERVER.pptxDatabase Management Systems and SQL SERVER.pptx
Database Management Systems and SQL SERVER.pptxsmg1723
 
D73549GC10_06.pptx
D73549GC10_06.pptxD73549GC10_06.pptx
D73549GC10_06.pptxVLQuyNhn
 
Cbse computer science (c++) class 12 board project bank managment system
Cbse computer science (c++)  class 12 board project  bank managment systemCbse computer science (c++)  class 12 board project  bank managment system
Cbse computer science (c++) class 12 board project bank managment systempranoy_seenu
 
Oracle Data Redaction
Oracle Data RedactionOracle Data Redaction
Oracle Data RedactionAlex Zaballa
 
Odv oracle customer_demo
Odv oracle customer_demoOdv oracle customer_demo
Odv oracle customer_demoViaggio Italia
 
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...ChristopherBow2
 
Data Redaction - OTN TOUR LA 2015
Data Redaction - OTN TOUR LA 2015 Data Redaction - OTN TOUR LA 2015
Data Redaction - OTN TOUR LA 2015 Alex Zaballa
 
Kevin Bengtson Portfolio
Kevin Bengtson PortfolioKevin Bengtson Portfolio
Kevin Bengtson PortfolioKbengt521
 

Similar to LAB PROJECT SECURITY (20)

1585625790_SQL-SESSION1.pptx
1585625790_SQL-SESSION1.pptx1585625790_SQL-SESSION1.pptx
1585625790_SQL-SESSION1.pptx
 
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ OracleUnderstanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
Understanding Query Optimization with ‘regular’ and ‘Exadata’ Oracle
 
Oracle Data Redaction
Oracle Data RedactionOracle Data Redaction
Oracle Data Redaction
 
SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015SysML for embedded system engineering - Academy Camp 2015
SysML for embedded system engineering - Academy Camp 2015
 
Oracle Data Redaction - UKOUG - TECH14
Oracle Data Redaction - UKOUG - TECH14Oracle Data Redaction - UKOUG - TECH14
Oracle Data Redaction - UKOUG - TECH14
 
Data Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your DatabaseData Tracking: On the Hunt for Information about Your Database
Data Tracking: On the Hunt for Information about Your Database
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
 
Windows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.com
Windows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.comWindows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.com
Windows splunk logging cheat sheet Oct 2016 - MalwareArchaeology.com
 
Presentation 12c pdb
Presentation 12c pdbPresentation 12c pdb
Presentation 12c pdb
 
Getting Started with Nastel AutoPilot Business Views and Policies - a Tutorial
Getting Started with Nastel AutoPilot Business Views and Policies - a TutorialGetting Started with Nastel AutoPilot Business Views and Policies - a Tutorial
Getting Started with Nastel AutoPilot Business Views and Policies - a Tutorial
 
Database Management Systems and SQL SERVER.pptx
Database Management Systems and SQL SERVER.pptxDatabase Management Systems and SQL SERVER.pptx
Database Management Systems and SQL SERVER.pptx
 
D73549GC10_06.pptx
D73549GC10_06.pptxD73549GC10_06.pptx
D73549GC10_06.pptx
 
Cbse computer science (c++) class 12 board project bank managment system
Cbse computer science (c++)  class 12 board project  bank managment systemCbse computer science (c++)  class 12 board project  bank managment system
Cbse computer science (c++) class 12 board project bank managment system
 
DBMS.pptx
DBMS.pptxDBMS.pptx
DBMS.pptx
 
Oracle Data Redaction
Oracle Data RedactionOracle Data Redaction
Oracle Data Redaction
 
Odv oracle customer_demo
Odv oracle customer_demoOdv oracle customer_demo
Odv oracle customer_demo
 
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
Designing Database Solutions for Microsoft SQL Server 2012 2012 Microsoft 70-...
 
Data Redaction - OTN TOUR LA 2015
Data Redaction - OTN TOUR LA 2015 Data Redaction - OTN TOUR LA 2015
Data Redaction - OTN TOUR LA 2015
 
Sql Portfolio
Sql PortfolioSql Portfolio
Sql Portfolio
 
Kevin Bengtson Portfolio
Kevin Bengtson PortfolioKevin Bengtson Portfolio
Kevin Bengtson Portfolio
 

More from aryan532920

According to the NASW Code of Ethics section 6.04 (NASW, 2008), .docx
According to the NASW Code of Ethics section 6.04 (NASW, 2008), .docxAccording to the NASW Code of Ethics section 6.04 (NASW, 2008), .docx
According to the NASW Code of Ethics section 6.04 (NASW, 2008), .docxaryan532920
 
According to the text, crime has been part of the human condition si.docx
According to the text, crime has been part of the human condition si.docxAccording to the text, crime has been part of the human condition si.docx
According to the text, crime has been part of the human condition si.docxaryan532920
 
According to Ronald Story and Bruce Laurie, The dozen years between.docx
According to Ronald Story and Bruce Laurie, The dozen years between.docxAccording to Ronald Story and Bruce Laurie, The dozen years between.docx
According to Ronald Story and Bruce Laurie, The dozen years between.docxaryan532920
 
According to Kirk (2016), most of your time will be spent work with .docx
According to Kirk (2016), most of your time will be spent work with .docxAccording to Kirk (2016), most of your time will be spent work with .docx
According to Kirk (2016), most of your time will be spent work with .docxaryan532920
 
According to the Council on Social Work Education, Competency 5 Eng.docx
According to the Council on Social Work Education, Competency 5 Eng.docxAccording to the Council on Social Work Education, Competency 5 Eng.docx
According to the Council on Social Work Education, Competency 5 Eng.docxaryan532920
 
According to Kirk (2016), most of our time will be spent working.docx
According to Kirk (2016), most of our time will be spent working.docxAccording to Kirk (2016), most of our time will be spent working.docx
According to Kirk (2016), most of our time will be spent working.docxaryan532920
 
According to Kirk (2016), most of your time will be spent working wi.docx
According to Kirk (2016), most of your time will be spent working wi.docxAccording to Kirk (2016), most of your time will be spent working wi.docx
According to Kirk (2016), most of your time will be spent working wi.docxaryan532920
 
According to Davenport (2014) the organizational value of healthcare.docx
According to Davenport (2014) the organizational value of healthcare.docxAccording to Davenport (2014) the organizational value of healthcare.docx
According to Davenport (2014) the organizational value of healthcare.docxaryan532920
 
According to the authors, privacy and security go hand in hand; .docx
According to the authors, privacy and security go hand in hand; .docxAccording to the authors, privacy and security go hand in hand; .docx
According to the authors, privacy and security go hand in hand; .docxaryan532920
 
According to Gilbert and Troitzsch (2005), Foundations of Simula.docx
According to Gilbert and Troitzsch (2005), Foundations of Simula.docxAccording to Gilbert and Troitzsch (2005), Foundations of Simula.docx
According to Gilbert and Troitzsch (2005), Foundations of Simula.docxaryan532920
 
According to Klein (2016), using ethical absolutism and ethical .docx
According to Klein (2016), using ethical absolutism and ethical .docxAccording to Klein (2016), using ethical absolutism and ethical .docx
According to Klein (2016), using ethical absolutism and ethical .docxaryan532920
 
According to Franks and Smallwood (2013), information has become.docx
According to Franks and Smallwood (2013), information has become.docxAccording to Franks and Smallwood (2013), information has become.docx
According to Franks and Smallwood (2013), information has become.docxaryan532920
 
According to the Council on Social Work Education, Competency 5.docx
According to the Council on Social Work Education, Competency 5.docxAccording to the Council on Social Work Education, Competency 5.docx
According to the Council on Social Work Education, Competency 5.docxaryan532920
 
According to the authors, privacy and security go hand in hand; and .docx
According to the authors, privacy and security go hand in hand; and .docxAccording to the authors, privacy and security go hand in hand; and .docx
According to the authors, privacy and security go hand in hand; and .docxaryan532920
 
According to recent surveys, China, India, and the Philippines are t.docx
According to recent surveys, China, India, and the Philippines are t.docxAccording to recent surveys, China, India, and the Philippines are t.docx
According to recent surveys, China, India, and the Philippines are t.docxaryan532920
 
According to the authors, countries that lag behind the rest of the .docx
According to the authors, countries that lag behind the rest of the .docxAccording to the authors, countries that lag behind the rest of the .docx
According to the authors, countries that lag behind the rest of the .docxaryan532920
 
According to Peskin et al. (2013) in our course reader, Studies on .docx
According to Peskin et al. (2013) in our course reader, Studies on .docxAccording to Peskin et al. (2013) in our course reader, Studies on .docx
According to Peskin et al. (2013) in our course reader, Studies on .docxaryan532920
 
According to Franks and Smallwood (2013), information has become the.docx
According to Franks and Smallwood (2013), information has become the.docxAccording to Franks and Smallwood (2013), information has become the.docx
According to Franks and Smallwood (2013), information has become the.docxaryan532920
 
According to Ang (2011), how is Social Media management differen.docx
According to Ang (2011), how is Social Media management differen.docxAccording to Ang (2011), how is Social Media management differen.docx
According to Ang (2011), how is Social Media management differen.docxaryan532920
 
According to (Alsaidi & Kausar (2018), It is expected that by 2020,.docx
According to (Alsaidi & Kausar (2018), It is expected that by 2020,.docxAccording to (Alsaidi & Kausar (2018), It is expected that by 2020,.docx
According to (Alsaidi & Kausar (2018), It is expected that by 2020,.docxaryan532920
 

More from aryan532920 (20)

According to the NASW Code of Ethics section 6.04 (NASW, 2008), .docx
According to the NASW Code of Ethics section 6.04 (NASW, 2008), .docxAccording to the NASW Code of Ethics section 6.04 (NASW, 2008), .docx
According to the NASW Code of Ethics section 6.04 (NASW, 2008), .docx
 
According to the text, crime has been part of the human condition si.docx
According to the text, crime has been part of the human condition si.docxAccording to the text, crime has been part of the human condition si.docx
According to the text, crime has been part of the human condition si.docx
 
According to Ronald Story and Bruce Laurie, The dozen years between.docx
According to Ronald Story and Bruce Laurie, The dozen years between.docxAccording to Ronald Story and Bruce Laurie, The dozen years between.docx
According to Ronald Story and Bruce Laurie, The dozen years between.docx
 
According to Kirk (2016), most of your time will be spent work with .docx
According to Kirk (2016), most of your time will be spent work with .docxAccording to Kirk (2016), most of your time will be spent work with .docx
According to Kirk (2016), most of your time will be spent work with .docx
 
According to the Council on Social Work Education, Competency 5 Eng.docx
According to the Council on Social Work Education, Competency 5 Eng.docxAccording to the Council on Social Work Education, Competency 5 Eng.docx
According to the Council on Social Work Education, Competency 5 Eng.docx
 
According to Kirk (2016), most of our time will be spent working.docx
According to Kirk (2016), most of our time will be spent working.docxAccording to Kirk (2016), most of our time will be spent working.docx
According to Kirk (2016), most of our time will be spent working.docx
 
According to Kirk (2016), most of your time will be spent working wi.docx
According to Kirk (2016), most of your time will be spent working wi.docxAccording to Kirk (2016), most of your time will be spent working wi.docx
According to Kirk (2016), most of your time will be spent working wi.docx
 
According to Davenport (2014) the organizational value of healthcare.docx
According to Davenport (2014) the organizational value of healthcare.docxAccording to Davenport (2014) the organizational value of healthcare.docx
According to Davenport (2014) the organizational value of healthcare.docx
 
According to the authors, privacy and security go hand in hand; .docx
According to the authors, privacy and security go hand in hand; .docxAccording to the authors, privacy and security go hand in hand; .docx
According to the authors, privacy and security go hand in hand; .docx
 
According to Gilbert and Troitzsch (2005), Foundations of Simula.docx
According to Gilbert and Troitzsch (2005), Foundations of Simula.docxAccording to Gilbert and Troitzsch (2005), Foundations of Simula.docx
According to Gilbert and Troitzsch (2005), Foundations of Simula.docx
 
According to Klein (2016), using ethical absolutism and ethical .docx
According to Klein (2016), using ethical absolutism and ethical .docxAccording to Klein (2016), using ethical absolutism and ethical .docx
According to Klein (2016), using ethical absolutism and ethical .docx
 
According to Franks and Smallwood (2013), information has become.docx
According to Franks and Smallwood (2013), information has become.docxAccording to Franks and Smallwood (2013), information has become.docx
According to Franks and Smallwood (2013), information has become.docx
 
According to the Council on Social Work Education, Competency 5.docx
According to the Council on Social Work Education, Competency 5.docxAccording to the Council on Social Work Education, Competency 5.docx
According to the Council on Social Work Education, Competency 5.docx
 
According to the authors, privacy and security go hand in hand; and .docx
According to the authors, privacy and security go hand in hand; and .docxAccording to the authors, privacy and security go hand in hand; and .docx
According to the authors, privacy and security go hand in hand; and .docx
 
According to recent surveys, China, India, and the Philippines are t.docx
According to recent surveys, China, India, and the Philippines are t.docxAccording to recent surveys, China, India, and the Philippines are t.docx
According to recent surveys, China, India, and the Philippines are t.docx
 
According to the authors, countries that lag behind the rest of the .docx
According to the authors, countries that lag behind the rest of the .docxAccording to the authors, countries that lag behind the rest of the .docx
According to the authors, countries that lag behind the rest of the .docx
 
According to Peskin et al. (2013) in our course reader, Studies on .docx
According to Peskin et al. (2013) in our course reader, Studies on .docxAccording to Peskin et al. (2013) in our course reader, Studies on .docx
According to Peskin et al. (2013) in our course reader, Studies on .docx
 
According to Franks and Smallwood (2013), information has become the.docx
According to Franks and Smallwood (2013), information has become the.docxAccording to Franks and Smallwood (2013), information has become the.docx
According to Franks and Smallwood (2013), information has become the.docx
 
According to Ang (2011), how is Social Media management differen.docx
According to Ang (2011), how is Social Media management differen.docxAccording to Ang (2011), how is Social Media management differen.docx
According to Ang (2011), how is Social Media management differen.docx
 
According to (Alsaidi & Kausar (2018), It is expected that by 2020,.docx
According to (Alsaidi & Kausar (2018), It is expected that by 2020,.docxAccording to (Alsaidi & Kausar (2018), It is expected that by 2020,.docx
According to (Alsaidi & Kausar (2018), It is expected that by 2020,.docx
 

Recently uploaded

Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerunnathinaik
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonJericReyAuditor
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 

Recently uploaded (20)

Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developer
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lesson
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 

LAB PROJECT SECURITY

  • 1. ( Lab Project ) ( 2 ) Table of Contents Introduction 4 Timeline 5 Conceptual Model: 6 Users: 6 Views: 7 Roles: 7 Logical Model: 8 Physical Model: 9 Security Implementation: 21 USER CREATION 21 CREATE ROLES AND GRANT PRIVILEGES21 Security Policy A: 22 Test Case scenario 1: 22 Test Case Scenario 2: 23 Test Case scenario 3: 23 Test case scenario 4: 23 Security Policy B: 24 Test case scenario 1: 24 Test Case Scenario 2: 24 Security Policy C: 25 Test case scenario 1: 25 Test case scenario 2: 26 Security Policy D: 27 Test case scenario 1: 27 Test case scenario 2: 28
  • 2. Security Policy E: 29 Test case scenario 1: 29 Test case scenario 1: 34 Security Policy F: 36 Test case scenario 1: 36 Test case scenario 2: 39 Security Policy G: 40 CREATE TABLE 41 CREATE POLICY 41 CREATE SECURITY LEVELS: U, C, S, TS 41 CREATE SECURITY LABELS: U, C, S, TS 42 GRANT USERS PRIVILEGES TO THE TABLE 42 SET USER LEVELS43 APPLY THE POLICY TO THE USERLVL TABLE 44 INSERT DATA INTO USERLVL TABLE 44 VIEW ACCESS FOR EACH USER LEVEL 45 Introduction Purest Retail Store has recently encountered database security breaches. The database stores customer’s personal information and their purchases, so it is important that only authorized users have access to the data in the database. The company’s internal IT staff built the database with no constraints on the tables to prevent duplication and unauthorized users from viewing the data. The owner of the store lost lots of loyal customers due to the breaches and tasked the Security Manager to find a solution to ensure that the data in the database is more secure and only accessible to authorized users. The security manager did a full risk analysis and determined that the IT department needs to establish better security practices and take the necessary measurements to improve the security of the database and its users. In addition, the security policy and plan should be frequently reviewed and updated to reflect the growing changes of the database and users. The following are the necessary
  • 3. implementation of database security measures: · Security Policy and Plan · Security procedures · Account setup for users that includes passwords · Assigning roles and privileges to users · Establishing Access Control · Granting authorized users access to the databaseTimeline Because the company has suffered great loss in both revenue and customers, it is important that these security measures are implemented immediately. The following is the timeline of completing the security policy and procedures. Conceptual Model: The following table consists of all the users who have access to the database. Each user is assigned a unique userid and password, specific privileges, and a role. The following are roles: DBA Role – The DBA role will have full control of the database and can review any activities conducted by any of the other users CustomerLookup Role – The customer lookup role allows authorized users to select from the customers table and the orders and order_detail table ETLUSER Role – This role is for any authorized user to be able to insert records into the table, delete, update and select. Employee Role – allows authorized users to lookup their own account. Users: User Name
  • 4. Userid Privileges Database Access ROLE Jack Walker JWALKER CREATE SESSION DBA ADMIN01, EMP Bev Smith BSMITH CREATE SESSION Insert, Select, Update To CUSTOMER & Product EMP William Noton WNOTON CREATE SESSION Insert, Select, Update To CUSTOMER & Product EMP Sheri Jackson SJACKSON CREATE SESSION Insert, Select, Update To Order_Line and Orders EMP Lily Jones LJONES CREATE SESSION Select on Customer, Orders CUST_ORDER, EMP Sean Kiles SKILES CREATE SESSION Insert and Update On Customer and Orders EMP Lee Wiles LWILES
  • 5. CREATE SESSION Delete, Insert on Any, Update on Any, Select on Any- MANAGER MANAGER01,EMPViews: Views Userid Database Access ROLE Vw_customerOrder LJONES SELECT CUST_ORDER Vw_updateEmployeeAddr ALL ACTIVE USERS Update (EMP_ADDR) EMP Vw_UpdateCustomerInfo BSMITH, WNOTON UPDATE vw_ViewEmployeeRecord ALL ACTIVE USERS SELECT EMPRoles: Roles Userid Database Access ADMIN01 JWALKER DBA MANAGER01 LWILES OBJECT PRIV EMP ALL ACTIVE USERS SELECT & Update (EMP_ADDR) per user
  • 6. CUST_ORDER LJONES SELECT on vw_customerOder Logical Model: Figure 1.1 Database ERD Figure 1.2 Data Model Definition Physical Model: DDL /*---------------------------------------------------*/ /* CREATE CUSTOMER TABLE */ /*---------------------------------------------------*/ DROP TABLE CUSTOMER CASCADE CONSTRAINTS; CREATE TABLE CUSTOMER ( CUS_ID NUMBER(10) NOT NULL, CUS_LNAME VARCHAR2(35 BYTE), CUS_FNAME VARCHAR2(25 BYTE), CUS_PHONE VARCHAR2(25 BYTE), CUS_ADDR VARCHAR2(40 BYTE), CUS_CITY VARCHAR2(20 BYTE), CUS_STATE VARCHAR2(2 BYTE), CUS_ZIP VARCHAR2(10 BYTE), Constraint PK_CUSID PRIMARY KEY (CUS_ID) ) ;
  • 7. COMMENT ON TABLE CUSTOMER IS 'Contains the master list of customers that have placed at least one order.'; COMMENT ON COLUMN CUSTOMER.CUS_ID IS 'Unique system generated number.'; COMMENT ON COLUMN CUSTOMER.CUS_LNAME IS 'Customers last name.'; COMMENT ON COLUMN CUSTOMER.CUS_FNAME IS 'Customers first name.'; COMMENT ON COLUMN CUSTOMER.CUS_ADDR IS 'Customers street address.'; COMMENT ON COLUMN CUSTOMER.CUS_CITY IS 'The City where the customer lives.'; COMMENT ON COLUMN CUSTOMER.CUS_STATE IS 'State where the customer lives.'; COMMENT ON COLUMN CUSTOMER.CUS_ZIP IS 'Unique identifier for a City and State location (United States).'; OUTPUT: DESC CUSTOMER Name Null Type --------- -------- ------------ CUS_ID NOT NULL NUMBER(10) CUS_LNAME VARCHAR2(35) CUS_FNAME VARCHAR2(25)
  • 8. CUS_PHONE VARCHAR2(25) CUS_ADDR VARCHAR2(40) CUS_CITY VARCHAR2(20) CUS_STATE VARCHAR2(2) CUS_ZIP VARCHAR2(10) /*---------------------------------------------------*/ /* CREATE EMPLOYEE TABLE */ /*---------------------------------------------------*/ DROP TABLE EMPLOYEE CASCADE CONSTRAINTS; CREATE TABLE EMPLOYEE ( EMP_ID NUMBER(10) NOT NULL, EMP_FNAME VARCHAR2(25 BYTE), EMP_LNAME VARCHAR2(35 BYTE), EMP_NAME VARCHAR2(25), EMP_PHONE VARCHAR2(25 BYTE), EMP_ADDR VARCHAR2(40 BYTE), EMP_CITY VARCHAR2(30), EMP_STATE VARCHAR2(2), EMP_ZIP VARCHAR2(10 BYTE), CONSTRAINT PK_EMPID PRIMARY KEY (EMP_ID) ); COMMENT ON TABLE EMPLOYEE IS 'The Employee table contains demographic information for each sales associates.'; COMMENT ON COLUMN EMPLOYEE.EMP_ID IS 'Unique system generated number.'; COMMENT ON COLUMN EMPLOYEE.EMP_FNAME IS 'Employee''s first name.';
  • 9. COMMENT ON COLUMN EMPLOYEE.EMP_LNAME IS 'Employee''s last name.'; COMMENT ON COLUMN EMPLOYEE.EMP_ADDR IS 'Employee street address.'; COMMENT ON COLUMN EMPLOYEE.EMP_CITY IS 'The City where the Employee lives.'; COMMENT ON COLUMN EMPLOYEE.EMP_STATE IS 'State where the Employee lives.'; COMMENT ON COLUMN EMPLOYEE.EMP_ZIP IS 'Unique identifier for a City and State location (United States).'; OUTPUT: /*---------------------------------------------------*/ /* CREATE PRODUCT TABLE */ /*---------------------------------------------------*/ DROP TABLE PRODUCT CASCADE CONSTRAINTS; CREATE TABLE PRODUCT ( PRO_ID NUMBER(10) NOT NULL, PRO_DESC VARCHAR2(255 BYTE), PRO_QTY NUMBER(10), PRO_COST NUMBER(18,2), CONSTRAINT PK_PROID PRIMARY KEY(PRO_ID)
  • 10. ); COMMENT ON TABLE PRODUCT IS 'Each Product record identifies an item that is available for a Customer to purchase.'; COMMENT ON COLUMN PRODUCT.PRO_ID IS 'Unique system generated number.'; COMMENT ON COLUMN PRODUCT.PRO_DESC IS 'Production description.'; COMMENT ON COLUMN PRODUCT.PRO_COST IS 'Unit cost of the product.'; OUTPUT: /*---------------------------------------------------*/ /* CREATE ORDERS TABLE */ /*---------------------------------------------------*/ DROP TABLE ORDERS CASCADE CONSTRAINTS; CREATE TABLE ORDERS ( ORD_ID NUMBER(10) NOT NULL, ORD_DATE DATE, CUS_ID NUMBER(10), EMP_ID NUMBER(10), Constraint PK_ORDID PRIMARY KEY(ORD_ID), Constraint FK_CUSID FOREIGN KEY (CUS_ID) REFERENCES CUSTOMER, CONSTRAINT FK_EMPID FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEE
  • 11. ); COMMENT ON TABLE ORDERS IS 'Each Order record represent a purchase made by a Customer.'; COMMENT ON COLUMN ORDERS.ORD_ID IS 'Unique system generated number.'; COMMENT ON COLUMN ORDERS.ORD_Date IS 'Date and time the order was entered, e.g., when the status changes.'; COMMENT ON COLUMN ORDERS.CUS_ID IS 'Unique system generated number.'; COMMENT ON COLUMN ORDERS.EMP_ID IS 'Unique system generated number.'; OUTPUT: /*---------------------------------------------------*/ /* CREATE ORDER_LINE TABLE */ /*---------------------------------------------------*/ DROP TABLE ORDER_LINE CASCADE CONSTRAINTS; CREATE TABLE ORDER_LINE ( ORL_ID NUMBER(10) NOT NULL, PRO_ID NUMBER(10), ORL_QTY NUMBER(10), ORD_ID NUMBER(10) NOT NULL, ORL_TOTCOST NUMBER(18,2), Constraint PK_ORL_ID PRIMARY KEY (ORL_ID), Constraint FK_PROID FOREIGN KEY (PRO_ID) REFERENCES PRODUCT,
  • 12. Constraint FK_ORDID FOREIGN KEY (ORD_ID) REFERENCES ORDERS ); COMMENT ON TABLE ORDER_LINE IS 'Each Order Line record identifies the item(s) placed on an Order.'; COMMENT ON COLUMN ORDER_LINE.ORL_ID IS 'Unique system generated number.'; COMMENT ON COLUMN ORDER_LINE.PRO_ID IS 'Foreign key to product.'; COMMENT ON COLUMN ORDER_LINE.ORL_QTY IS 'Total quantity of the product ordered.'; COMMENT ON COLUMN ORDER_LINE.ORD_ID IS 'Foreign key to orders.'; COMMENT ON COLUMN ORDER_LINE.ORL_TOTCOST IS 'Total cost of the order (ORDER_LINE.ORL_TOTQTY * ORDER.ORD_COST).'; OUTPUT: /*---------------------------------------------------*/ /* CREATE INDEX */ /*---------------------------------------------------*/ CREATE INDEX FK_ORDID ON ORDER_LINE(ORD_ID);
  • 13. CREATE INDEX FK_PROID ON ORDER_LINE(PRO_ID); CREATE INDEX FK_CUSID ON ORDERS(CUS_ID); CREATE INDEX FK_EMPID ON ORDERS(EMP_ID); DML: /*---------------------------------------------------*/ /* CUSTOMER */ /*---------------------------------------------------*/ Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (1,'FILARSKI','John','1628181183','54 Rogers City Street', 'Columbia', 'MD','21045'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (2,'DOPKE','John','4749616559','13 Posen Street', 'Columbia', 'MD','21045'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (3,'BARBER','Eustace','1038163575','53 Flint Street', 'Columbia', 'MD','21045'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (4,'CHOJNACKI','Chelsea','8047649647','44 Bay City Street', 'Germantown', 'MD','20876'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (5,'CIUPKA','John','2197269717','30 Wilson Street',
  • 14. 'Germantown', 'MD','20876'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (6,'BALTRUCZWIC','fname','3749008801','75 Posen Street', 'Germantown', 'MD','20876'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (7,'CALCUTT','Tena','3691697299','69 Westland Street', 'Elicott City', 'MD', '21044'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (8,'GABRYSIAK','Martha','2667749123','20 Long Rapids Street', 'Elicott City', 'MD', '21044'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (9,'CHOJNACKI','Bernadine','9238274028','68 Rogers City Street', 'Silver Spring', 'MD','20910'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (10,'BURTON','Charles','1613454712','38 Harrisville Street', 'Silver Spring', 'MD','20910'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR, CUS_CITY, CUS_STATE, CUS_ZIP) values (11,'GERARD','Eva','9209862959','14 Dearborn Road', 'Silver Spring', 'MD','20910'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (12,'CARON','Charlotte','5792851541','44 Tawas Place', 'Silver Spring', 'MD','20910');
  • 15. Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (13,'DUMSCH','John','5806348205','65 Lachine Drive', 'College Park', 'MD','20873'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (14,'GRULKE','Albert','7769502494','42 Flint Rd', 'College Park', 'MD','20873'); Insert into CUSTOMER (CUS_ID,CUS_LNAME,CUS_FNAME,CUS_PHONE,CUS_AD DR,CUS_CITY, CUS_STATE, CUS_ZIP) values (15,'COPPICK','John','6525978039','71 Hillman Street', 'College Park', 'MD','20873'); OUTPUT: /*---------------------------------------------------*/ /* EMPLOYEE */ /*---------------------------------------------------*/ Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (1,'Wiles','LEE','LWILES','4638143636','12 Caledonia Place', 'Columbia', 'MD','21045');
  • 16. Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (2,'Jones','Lily','LJONES','2618669777','14 Carolina Street', 'Columbia', 'MD','21045'); Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (3,'Kiles','Sean','SKILES','6073493126','6 Oscoda Street', 'Columbia', 'MD','21045'); Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (4,'Jackson','Sheri','SJACKSON','7266708260','17 Harrisville Street', 'Washington', 'DC','20001'); Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (5,'Noton','William','WNOTON','6984196073','71 Lincoln Place', 'Germantown', 'MD','20876'); Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (6,'SMITH','BEV','BSMITH','3078249316','41 Onaway Road', 'Elicott City', 'MD', '21044'); Insert into EMPLOYEE (EMP_ID,EMP_LNAME,EMP_FNAME, EMP_NAME, EMP_PHONE,EMP_ADDR, EMP_CITY, EMP_STATE, EMP_ZIP) values (7,'Walker','Jack','JWALKER','9416111764','28 Barton City Street', 'Silver Spring', 'MD','20910');
  • 17. OUTPUT: /*---------------------------------------------------*/ /* PRODUCT */ /*---------------------------------------------------*/ Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (1,138.65,'Torque Wrench 3/4"drive preset Wr. 15A 150 ft- lbs.',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (2,44.84,'Dial-Type Torque Wrench dial dual wr. 1/2" 0-175 ft-lbs.',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (3,182.9,'Impact Socket 3/4" Square Drive Double Square 1- 3/8',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (4,178.18,'Impact Socket 1" Square Drive Standard 3- 3/16',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (5,138.06,'CYLINDER ASSEMBLY - 1700 SERIES',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (6,144.55,'GUIDE HANDLE - 1700 SERIES',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (7,148.09,'CYL/CUTTERHEAD ASSEM. (1753- 8913CN)',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (8,148.09,'CYL/CUTTERHEAD ASSEMBLY (1752-
  • 18. 1713A)',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (9,152.22,'1752-1713CDX CYL/CUTTERHEAD ASSEMBLY',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (10,152.22,'21124LK-1713LK CYL/CUTTERHEAD ASSEMBLY',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (11,173.46,'ASSEMBLY 1753 CYL-1713PQ NUT SPLITTER',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (12,330.99,'1752-1713T CYL/CUTTERHEAD ASSEMBLY',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (13,384.68,'1752-1713TA CYL/CUTTERHEAD ASSEMBLY',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (14,381.73,'1752-1713TC CYL/CUTTERHEAD ASSEMBLY',1000); Insert into PRODUCT (PRO_ID,PRO_COST,PRO_DESC,PRO_QTY) values (15,123.9,'Impact Socket 1" Square Drive Deep 3-3/16',1000); OUTPUT: /*---------------------------------------------------*/ /* ORDERS */ /*---------------------------------------------------*/
  • 19. Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (1,to_date('12-NOV-19','DD-MON-RR'),1,1); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (2,to_date('12-NOV-19','DD-MON-RR'),2,2); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (3,to_date('12-NOV-19','DD-MON-RR'),3,3); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (4,to_date('12-NOV-19','DD-MON-RR'),4,4); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (5,to_date('12-NOV-19','DD-MON-RR'),5,5); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (6,to_date('12-NOV-19','DD-MON-RR'),6,6); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (7,to_date('12-NOV-19','DD-MON-RR'),7,7); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (8,to_date('12-NOV-19','DD-MON-RR'),8,8); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (9,to_date('12-NOV-19','DD-MON-RR'),9,9); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (10,to_date('12-NOV-19','DD-MON-RR'),10,10); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (11,to_date('12-NOV-19','DD-MON-RR'),11,11); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (12,to_date('12-OCT-02','DD-MON-RR'),12,12); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (13,to_date('12-OCT-02','DD-MON-RR'),13,13); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (14,to_date('12-OCT-02','DD-MON-RR'),14,14); Insert into ORDERS (ORD_ID,ORD_DATE,CUS_ID,EMP_ID) values (15,to_date('12-OCT-02','DD-MON-RR'),15,15); OUTPUT: /*---------------------------------------------------*/
  • 20. /* ORDER_LINE */ /*---------------------------------------------------*/ Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (1,1,1,1,138.65); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (2,2,1,2,44.84); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (3,3,1,3,182.9); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (4,4,1,4,178.18); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (5,5,1,5,138.06); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (6,6,1,6,144.55); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (7,7,1,7,148.09); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (8,8,1,8,148.09); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (9,9,1,9,152.22); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (10,10,1,10,152.22); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (11,11,1,11,173.46); Insert into ORDER_LINE
  • 21. (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (12,12,1,12,330.99); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (13,13,1,13,384.68); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (14,14,1,14,381.73); Insert into ORDER_LINE (ORL_ID,PRO_ID,ORL_QTY,ORD_ID,ORL_TOTCOST) values (15,15,1,15,123.9); OUTPUT: CREATE VIEW: Create or Replace View vw_UpdateEmployeeAddr AS ( Select EMP_ID, EMP_FNAME, EMP_LNAME, EMP_ADDR FROM EMPLOYEE WHERE EMP_Name = User ); OUTPUT: > Create or Replace View vw_ViewEmployeeRecord AS ( Select * FROM EMPLOYEE WHERE EMP_Name = User ) view VW_VIEWEMPLOYEERECORD created.
  • 22. Create or Replace View vw_CustomerOrder AS ( Select CUS_FNAME, CUS_LNAME, ORD_ID, ORD_DATE FROM Customer c, Orders o WHERE c.CUS_ID=o.CUS_ID ); Create or Replace View vw_UpdateCustomerInfo AS ( Select CUS_FNAME, CUS_LNAME, CUS_ADDR, CUS_CITY, CUS_STATE, CUS_ZIP FROM Customer ); Security Implementation: USER CREATION CREATE USER LWILES IDENTIFIED BY aaaaaa1#; CREATE USER LJONES IDENTIFIED BY bbbbb1b#; CREATE USER SKILES IDENTIFIED BY ssssss2#; CREATE USER SJACKSON IDENTIFIED BY jjjjjjjS2; CREATE USER WNOTON IDENTIFIED BY wwwwwww3#; CREATE USER BSMITH IDENTIFIED BY bssssss7#; CREATE USER JWALKER IDENTIFIED BY wwwwww12#; OUTPUT: CREATE ROLES AND GRANT PRIVILEGES
  • 23. CREATE ROLE EMP; CREATE ROLE ADMIN01; CREATE ROLE MANAGER01; CREATE ROLE CUST_ORDER; GRANTS > GRANT DBA TO ADMIN01 GRANT succeeded. > GRANT SELECT ON vw_CustomerOrder TO CUST_ORDER GRANT succeeded. > GRANT ALL ON CUSTOMER TO MANAGER01 GRANT succeeded. > GRANT ALL ON ORDERS TO MANAGER01 GRANT succeeded. > GRANT ALL ON ORDER_LINE TO MANAGER01 GRANT succeeded. > GRANT ALL ON EMPLOYEE TO MANAGER01 GRANT succeeded. > GRANT ALL ON PRODUCT TO MANAGER01 GRANT succeeded. > GRANT UPDATE (EMP_ADDR) ON vw_UpdateEmployeeAddr TO EMP GRANT succeeded. > GRANT CREATE SESSION TO LWILES, LJONES, SKILES, SJACKSON, WNOTON, BSMITH, JWALKER GRANT succeeded. > GRANT ADMIN01 TO JWALKER GRANT succeeded. > GRANT MANAGER01 TO LWILES GRANT succeeded. > GRANT EMP TO LWILES, LJONES, SKILES, SJACKSON, WNOTON, BSMITH, JWALKER
  • 24. GRANT succeeded. > GRANT CUST_ORDER TO LJONES GRANT succeeded. > GRANT INSERT, SELECT, UPDATE ON CUSTOMER TO WNOTON, BSMITH GRANT succeeded. > GRANT INSERT, SELECT, UPDATE ON PRODUCT TO WNOTON, BSMITH GRANT succeeded. > GRANT INSERT, SELECT, UPDATE ON ORDER_LINE TO SJACKSON GRANT succeeded. > GRANT INSERT, SELECT, UPDATE ON ORDERS TO SJACKSON GRANT succeeded. > GRANT UPDATE ON vw_UpdateCustomerInfo TO BSMITH, WNOTON GRANT succeeded. > Grant SELECT ON vw_ViewEmployeeRecord TO EMP Grant succeeded. Security Policy A:Jack Walker is the only DBA and the only person allowed full control of the database. Instead of granting DBA to the user JWALKER, this user will be granted the role ADMIN01. This will allow easy the company to easily and quickly update the privileges for any DBA including JWALKER. Test Case scenario 1:To verify the privileges JWALKER has on the DB668A01. He will connect as himself, create a test table, insert a record, create a user, grant the user to the table and then Drop the user and drop the test table. > Connect JWALKER/wwwwww12# Connected > Show user
  • 25. USER is JWALKER > Drop table DB668A01.test1 table DB668A01.TEST1 dropped. > Create table DB668A01.TEST1 ( TestId number not null, testname varchar2(25)) table DB668A01.TEST1 created. > Insert Into DB668A01.TEST1 Values(1, 'Test Name') 1 rows inserted. > Create User TESTUSER identified by test1 user TESTUSER created. > Grant Resource, Connect to TESTUSER Grant succeeded. > GRANT SELECT ON DB668A01.TEST1 to TESTUSER GRANT succeeded. Connection created by CONNECT script command disconnected Test Case Scenario 2:Connect as Testuser and select from table DB668A01.TEST1 > Connect TESTUSER/test1 Connected > Show user USER is TESTUSER > Select * from DB668A01.TEST1 TESTID TESTNAME ------ ------------------------- 1 Test Name Connection created by CONNECT script command disconnected Test Case scenario 3: Connect as JWALKER, Drop User and Test1 > Connect JWALKER/wwwwww12# Connected
  • 26. > Show user USER is JWALKER > Drop user TESTUSER user TESTUSER dropped. > Drop table DB668A01.test1 table DB668A01.TEST1 dropped. Connection created by CONNECT script command disconnected Test case scenario 4: Verify a user not granted the ADMIN01 Role cannot create a table on DB668A01. > Connect LJONES/bbbbb1b# Connected > Show user USER is LJONES > Create table DB668A01.test1 ( TestId number not null, testname varchar2(25)) Error starting at line 6 in command: Create table DB668A01.test1 ( TestId number not null, testname varchar2(25)) Error at Command Line:6 Column:0 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur
  • 27. if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. Connection created by CONNECT script command disconnected Security Policy B:The EMP role was created to maintain and manage how an employee can view and update his/her employee record. This is so that we don’t have to grant privileges per each user for the employee table. Because we want to restrict access of what records the users can view and update, two stored procedures were created: DB668A01.vw_UpdateEmployeeAddr and DB668A01.vw_ViewEmployeeRecord. Test case scenario 1: Connect as any user and update another user’s address using the DB668A01.vw_UpdateEmployeeAddr. The connect user should only be able to update his/her addr info. > Connect LWILES/aaaaaa1# Connected > Show user USER is LWILES > Update DB668A01.vw_UpdateEmployeeAddr Set EMP_ADDR = '129 Piny Branch RD' Where EMP_ID =2 –This is user LJONES 0 rows updated. > Update DB668A01.vw_UpdateEmployeeAddr
  • 28. Set EMP_ADDR = '129 Piny Branch RD' Where EMP_ID =1 –This is user LWILES 1 rows updated. Connection created by CONNECT script command disconnected Test Case Scenario 2:Connect as any user to view DB668A01.vw_ViewEmployeeRecord and select ALL rows to verify the records the user can see. The connected user should only be able to view his/her record. > Connect SJACKSON/jjjjjjjS2 Connected > Show User USER is SJACKSON > Select * from DB668A01.vw_ViewEmployeeRecord EMP_ID EMP_FNAME EMP_LNAME EMP_NAME EMP_PHONE EMP_ADDR EMP_CITY EMP_STATE EMP_ZIP ------ --------- --------- -------- --------- -------- -------- --------- -- ----- 4 Sheri Jackson SJACKSON 7266708260 17 Harrisville Street Washington DC 20001 Connection created by CONNECT script command disconnected Security Policy C: The MANAGER01 role was created to maintain and manage tables in the database for all managers. The MANAGER01 role has Select, Update, Insert, and Delete privileges on all the tables in the database. Test case scenario 1: Connect as user LWILES, verify the role of the user is Manager01, test the role by performing each of the functions for the tables. Use Employee table as the performing table since the Manager01 only has the ability to make changes to this table. Select * FROM DBA_ROLE_PRIVS
  • 29. Where GRANTEE = 'LWILES'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE ------- ------------ ------------ ------------ LWILES CONNECT NO YES LWILES RESOURCE NO YES LWILES MANAGER01 NO YES LWILES EMP NO YES > Connect LWILES/aaaaaa1# Connected > Show User USER is LWILES > INSERT INTO DB668A01.EMPLOYEE VALUES(8, 'Sam', 'Stephens', 'SSTEPHENS', '9910112003', 'APT 1 Spin Crest Dr', 'Highland', 'MD', '20777') 1 rows inserted. > Select * FROM DB668A01.EMPLOYEE EMP_ID EMP_FNAME EMP_LNAME EMP_NAME EMP_PHONE EMP_ADDR EMP_CITY EMP_STATE EMP_ZIP ---------- ------------------------- ----------------------------------- -- ----------------------- ------------------------- ------------------------- --------------- ------------------------------ --------- ---------- 8 Sam Stephens SSTEPHENS 9910112003 APT 1 Spin Crest Dr Highland MD 20777 1 LEE Wiles LWILES 4638143636 129 Piny Branch RD Columbia MD 21045 2 Lily Jones LJONES 2618669777 14 Carolina Street Columbia MD 21045 3 Sean Kiles SKILES
  • 30. 6073493126 6 Oscoda Street Columbia MD 21045 4 Sheri Jackson SJACKSON 7266708260 17 Harrisville Street Washington DC 20001 5 William Noton WNOTON 6984196073 71 Lincoln Place Germantown MD 20876 6 BEV SMITH BSMITH 3078249316 41 Onaway Road Elicott City MD 21044 7 Jack Walker JWALKER 9416111764 28 Barton City Street Silver Spring MD 20910 8 rows selected > Update DB668A01.EMPLOYEE Set EMP_FNAME = 'Samantha' Where EMP_ID = 8 1 rows updated. > Delete From DB668A01.EMPLOYEE Where EMP_ID = 8 1 rows deleted. Connection created by CONNECT script command disconnected Test case scenario 2: Test another user to see if he/she can perform the same functions as LWILES. Results: As you can see William Notion is not able to View, Insert, Update, or Delete an entry from DB668A01.EMPLOYEE. > Connect WNOTON/wwwwwww3# Connected > Show User
  • 31. USER is WNOTON > INSERT INTO DB668A01.EMPLOYEE VALUES(8, 'Sam', 'Stephens', 'SSTEPHENS', '9910112003', 'APT 1 Spin Crest Dr', 'Highland', 'MD', '20777') Error starting at line 54 in command: INSERT INTO DB668A01.EMPLOYEE VALUES(8, 'Sam', 'Stephens', 'SSTEPHENS', '9910112003', 'APT 1 Spin Crest Dr', 'Highland', 'MD', '20777') Error at Command Line:54 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Select * FROM DB668A01.EMPLOYEE Error starting at line 55 in command: Select * FROM DB668A01.EMPLOYEE Error at Command Line:55 Column:23 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Update DB668A01.EMPLOYEE Set EMP_FNAME = 'Samantha' Where EMP_ID = 8 Error starting at line 56 in command: Update DB668A01.EMPLOYEE Set EMP_FNAME = 'Samantha' Where EMP_ID = 8 Error at Command Line:56 Column:16 Error report: SQL Error: ORA-00942: table or view does not exist
  • 32. 00942. 00000 - "table or view does not exist" *Cause: *Action: > Delete From DB668A01.EMPLOYEE Where EMP_ID = 8 Error starting at line 59 in command: Delete From DB668A01.EMPLOYEE Where EMP_ID = 8 Error at Command Line:59 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: Connection created by CONNECT script command disconnected Security Policy D: The CUST_ORDER role was created so allow sales staff to view customer’s orders. A view was created to display this information. The view is DB668A01.vw_CustomerOrder and it was granted SELECT to the CUST_ORDER role. Test case scenario 1: Connect as a user and verify whether this user has SELECT only on the view. > Connect LJONES/bbbbb1b# Connected > Show User USER is LJONES > Select * FROM DB668A01.vw_CustomerOrder CUS_FNAME CUS_LNAME ORD_ID ORD_DATE ------------------------- ----------------------------------- ---------- -- ------- John FILARSKI 1 12- NOV-19 John DOPKE 2 12-
  • 33. NOV-19 Eustace BARBER 3 12- NOV-19 Chelsea CHOJNACKI 4 12- NOV-19 John CIUPKA 5 12- NOV-19 fname BALTRUCZWIC 6 12-NOV-19 Tena CALCUTT 7 12- NOV-19 Martha GABRYSIAK 8 12- NOV-19 Bernadine CHOJNACKI 9 12-NOV-19 Charles BURTON 10 12- NOV-19 Eva GERARD 11 12- NOV-19 Charlotte CARON 12 12- OCT-02 John DUMSCH 13 12- OCT-02 Albert GRULKE 14 12- OCT-02 John COPPICK 15 12- OCT-02 15 rows selected > Update DB668A01.vw_CustomerOrder Set CUS_FNAME = 'Paula' Where ORD_ID = 6 Error starting at line 55 in command: Update DB668A01.vw_CustomerOrder
  • 34. Set CUS_FNAME = 'Paula' Where ORD_ID = 6 Error at Command Line:55 Column:16 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. Connection created by CONNECT script command disconnected Test case scenario 2: Connect as another user and verify whether this user has access to this view DB668A01.vw_CustomerOrder. > Connect BSMITH/bssssss7# Connected > Show User
  • 35. USER is BSMITH > Select * FROM DB668A01.vw_CustomerOrder Error starting at line 54 in command: Select * FROM DB668A01.vw_CustomerOrder Error at Command Line:54 Column:23 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Update DB668A01.vw_CustomerOrder Set CUS_FNAME = 'Paula' Where ORD_ID = 6 Error starting at line 55 in command: Update DB668A01.vw_CustomerOrder Set CUS_FNAME = 'Paula' Where ORD_ID = 6 Error at Command Line:55 Column:16 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: Connection created by CONNECT script command disconnected Security Policy E: Users WNOTON and BSMITH were granted INSERT, SELECT, and Update on Customer and Product table. They are the only ones besides MANAGER01 and ADMIN01 allowed object privileges (except Delete) on these two tables. Verify their privileges and verify no other user besides MANAGER01 (LWILES) and ADMIN01 (JWALKER) have access.
  • 36. Test case scenario 1: Connect as the privileged user, WNOTON and BSMITH and verify object privileges on Customer and Product table. USER#1: > Connect BSMITH/bssssss7# Connected > Show User USER is BSMITH > INSERT INTO DB668A01.CUSTOMER VALUES(16, 'TANG', 'WANG', '2901110920', '34 Weather Drive', 'Silver Spring', 'MD', '20910') 1 rows inserted. > Update DB668A01.CUSTOMER Set CUS_FNAME = 'WAGNER' Where CUS_ID = 16 1 rows updated. > Select * From DB668A01.CUSTOMER CUS_ID CUS_LNAME CUS_FNAME CUS_PHONE CUS_ADDR CUS_CITY CUS_STATE CUS_ZIP ---------- ----------------------------------- ------------------------- -- ----------------------- ---------------------------------------- ---------- ---------- --------- ---------- 16 TANG WAGNER 2901110920 34 Weather Drive Silver Spring MD 20910 1 FILARSKI John 1628181183 54 Rogers City Street Columbia MD 21045 2 DOPKE John 4749616559 13 Posen Street
  • 37. Columbia MD 21045 3 BARBER Eustace 1038163575 53 Flint Street Columbia MD 21045 4 CHOJNACKI Chelsea 8047649647 44 Bay City Street Germantown MD 20876 5 CIUPKA John 2197269717 30 Wilson Street Germantown MD 20876 6 BALTRUCZWIC fname 3749008801 75 Posen Street Germantown MD 20876 7 CALCUTT Tena 3691697299 69 Westland Street Elicott City MD 21044 8 GABRYSIAK Martha 2667749123 20 Long Rapids Street Elicott City MD 21044 9 CHOJNACKI Bernadine 9238274028 68 Rogers City Street Silver Spring MD 20910 10 BURTON Charles 1613454712 38 Harrisville Street Silver Spring MD 20910 11 GERARD Eva 9209862959 14 Dearborn Road Silver Spring MD 20910 12 CARON Charlotte 5792851541 44 Tawas Place Silver Spring MD 20910 13 DUMSCH John 5806348205 65 Lachine Drive College Park MD 20873 14 GRULKE Albert 7769502494 42 Flint Rd College
  • 38. Park MD 20873 15 COPPICK John 6525978039 71 Hillman Street College Park MD 20873 16 rows selected > Delete From DB668A01.CUSTOMER Where CUS_ID= 16 Error starting at line 62 in command: Delete From DB668A01.CUSTOMER Where CUS_ID= 16 Error at Command Line:62 Column:21 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label.
  • 39. Connection created by CONNECT script command disconnected > Connect BSMITH/bssssss7# Connected > Show User USER is BSMITH > INSERT INTO DB668A01.PRODUCT VALUES(16, 'Black TShirt Small', 1000, 3000.99) 1 rows inserted. > Update DB668A01.PRODUCT Set PRO_COST = '3000.00' Where PRO_ID = 16 1 rows updated. > Select * From DB668A01.PRODUCT PRO_ID PRO_DESC PRO_QTY PRO_COST ---------- ---------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------------------------------------- ---------- ------------------ 16 Black TShirt Small 1000 3000 1 Torque Wrench 3/4"drive preset Wr. 15A 150 ft-lbs. 1000 138.65 2 Dial-Type Torque Wrench dial dual wr. 1/2" 0-175 ft-lbs. 1000 44.84 3 Impact Socket 3/4" Square Drive Double Square 1-3/8 1000 182.9 4 Impact Socket 1" Square Drive Standard 3-3/16 1000 178.18 5 CYLINDER ASSEMBLY - 1700 SERIES 1000 138.06
  • 40. 6 GUIDE HANDLE - 1700 SERIES 1000 144.55 7 CYL/CUTTERHEAD ASSEM. (1753-8913CN) 1000 148.09 8 CYL/CUTTERHEAD ASSEMBLY (1752-1713A) 1000 148.09 9 1752-1713CDX CYL/CUTTERHEAD ASSEMBLY 1000 152.22 10 21124LK-1713LK CYL/CUTTERHEAD ASSEMBLY 1000 152.22 11 ASSEMBLY 1753 CYL-1713PQ NUT SPLITTER 1000 173.46 12 1752-1713T CYL/CUTTERHEAD ASSEMBLY 1000 330.99 13 1752-1713TA CYL/CUTTERHEAD ASSEMBLY 1000 384.68 14 1752-1713TC CYL/CUTTERHEAD ASSEMBLY 1000 381.73 15 Impact Socket 1" Square Drive Deep 3-3/16 1000 123.9 16 rows selected > Delete From DB668A01.PRODUCT Where PRO_ID= 16 Error starting at line 62 in command: Delete From DB668A01.PRODUCT Where PRO_ID= 16 Error at Command Line:62 Column:21 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary
  • 41. operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. Connection created by CONNECT script command disconnected USER#2: > Connect WNOTON/wwwwwww3# Connected > Show User USER is WNOTON > INSERT INTO DB668A01.CUSTOMER VALUES(17, 'TANG', 'Stephy', '2901110920', '34 Weather Drive', 'Silver Spring', 'MD', '20910') 1 rows inserted. > Update DB668A01.CUSTOMER Set CUS_FNAME = 'Stephany' Where CUS_ID = 17 1 rows updated.
  • 42. > Select * From DB668A01.CUSTOMER CUS_ID CUS_LNAME CUS_FNAME CUS_PHONE CUS_ADDR CUS_CITY CUS_STATE CUS_ZIP ---------- ----------------------------------- ------------------------- -- ----------------------- ---------------------------------------- ---------- ---------- --------- ---------- 16 TANG WAGNER 2901110920 34 Weather Drive Silver Spring MD 20910 17 TANG Stephany 2901110920 34 Weather Drive Silver Spring MD 20910 1 FILARSKI John 1628181183 54 Rogers City Street Columbia MD 21045 2 DOPKE John 4749616559 13 Posen Street Columbia MD 21045 3 BARBER Eustace 1038163575 53 Flint Street Columbia MD 21045 4 CHOJNACKI Chelsea 8047649647 44 Bay City Street Germantown MD 20876 5 CIUPKA John 2197269717 30 Wilson Street Germantown MD 20876 6 BALTRUCZWIC fname 3749008801 75 Posen Street Germantown MD 20876 7 CALCUTT Tena 3691697299 69 Westland Street Elicott City MD 21044 8 GABRYSIAK Martha
  • 43. 2667749123 20 Long Rapids Street Elicott City MD 21044 9 CHOJNACKI Bernadine 9238274028 68 Rogers City Street Silver Spring MD 20910 10 BURTON Charles 1613454712 38 Harrisville Street Silver Spring MD 20910 11 GERARD Eva 9209862959 14 Dearborn Road Silver Spring MD 20910 12 CARON Charlotte 5792851541 44 Tawas Place Silver Spring MD 20910 13 DUMSCH John 5806348205 65 Lachine Drive College Park MD 20873 14 GRULKE Albert 7769502494 42 Flint Rd College Park MD 20873 15 COPPICK John 6525978039 71 Hillman Street College Park MD 20873 17 rows selected > Delete From DB668A01.CUSTOMER Where CUS_ID= 17 Error starting at line 74 in command: Delete From DB668A01.CUSTOMER Where CUS_ID= 17 Error at Command Line:74 Column:21 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password
  • 44. without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. Connection created by CONNECT script command disconnected > Connect WNOTON/wwwwwww3# Connected > Show User USER is WNOTON > INSERT INTO DB668A01.PRODUCT VALUES(17, 'White TShirt Small', 1000, 3000.99) 1 rows inserted. > Update DB668A01.PRODUCT Set PRO_COST = '3000.00' Where PRO_ID = 17 1 rows updated. > Select * From DB668A01.PRODUCT
  • 45. PRO_ID PRO_DESC PRO_QTY PRO_COST ---------- ---------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------------------------------------- ---------- ------------------ 16 Black TShirt Small 1000 3000 17 White TShirt Small 1000 3000 1 Torque Wrench 3/4"drive preset Wr. 15A 150 ft-lbs. 1000 138.65 2 Dial-Type Torque Wrench dial dual wr. 1/2" 0-175 ft-lbs. 1000 44.84 3 Impact Socket 3/4" Square Drive Double Square 1-3/8 1000 182.9 4 Impact Socket 1" Square Drive Standard 3-3/16 1000 178.18 5 CYLINDER ASSEMBLY - 1700 SERIES 1000 138.06 6 GUIDE HANDLE - 1700 SERIES 1000 144.55 7 CYL/CUTTERHEAD ASSEM. (1753-8913CN) 1000 148.09 8 CYL/CUTTERHEAD ASSEMBLY (1752-1713A) 1000 148.09 9 1752-1713CDX CYL/CUTTERHEAD ASSEMBLY 1000 152.22 10 21124LK-1713LK CYL/CUTTERHEAD ASSEMBLY 1000 152.22 11 ASSEMBLY 1753 CYL-1713PQ NUT SPLITTER 1000 173.46 12 1752-1713T CYL/CUTTERHEAD ASSEMBLY 1000 330.99 13 1752-1713TA CYL/CUTTERHEAD ASSEMBLY
  • 46. 1000 384.68 14 1752-1713TC CYL/CUTTERHEAD ASSEMBLY 1000 381.73 15 Impact Socket 1" Square Drive Deep 3-3/16 1000 123.9 17 rows selected > Delete From DB668A01.PRODUCT Where PRO_ID= 17 Error starting at line 74 in command: Delete From DB668A01.PRODUCT Where PRO_ID= 17 Error at Command Line:74 Column:21 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate
  • 47. label. Connection created by CONNECT script command disconnected Test case scenario 1: Connect as another user and verify object privileges on these tables Customer and Product table. Result: As you can see indicated in red that user SJACKSON does not have sufficient privilege to view the PRODUCT and CUSTOMER Table in Database DB668A01 and cannot perform any object privileges. > Connect SJACKSON/jjjjjjjS2 Connected > Show User USER is SJACKSON > INSERT INTO DB668A01.PRODUCT VALUES(16, 'White TShirt Small', 1000, 3000.99) Error starting at line 66 in command: INSERT INTO DB668A01.PRODUCT VALUES(16, 'White TShirt Small', 1000, 3000.99) Error at Command Line:66 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Update DB668A01.PRODUCT Set PRO_COST = '3000.00' Where PRO_ID = 16 Error starting at line 68 in command: Update DB668A01.PRODUCT Set PRO_COST = '3000.00' Where PRO_ID = 16 Error at Command Line:68 Column:16
  • 48. Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Select * From DB668A01.PRODUCT Error starting at line 72 in command: Select * From DB668A01.PRODUCT Error at Command Line:72 Column:23 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Delete From DB668A01.PRODUCT Where PRO_ID= 16 Error starting at line 74 in command: Delete From DB668A01.PRODUCT Where PRO_ID= 16 Error at Command Line:74 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > INSERT INTO DB668A01.CUSTOMER VALUES(16, 'TANG', 'Stephy', '2901110920', '34 Weather Drive', 'Silver Spring', 'MD', '20910') Error starting at line 76 in command: INSERT INTO DB668A01.CUSTOMER VALUES(16, 'TANG', 'Stephy', '2901110920', '34 Weather Drive', 'Silver Spring', 'MD', '20910') Error at Command Line:76 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist
  • 49. 00942. 00000 - "table or view does not exist" *Cause: *Action: > Update DB668A01.CUSTOMER Set CUS_FNAME = 'Stephany' Where CUS_ID = 16 Error starting at line 78 in command: Update DB668A01.CUSTOMER Set CUS_FNAME = 'Stephany' Where CUS_ID = 16 Error at Command Line:78 Column:16 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Select * From DB668A01.CUSTOMER Error starting at line 82 in command: Select * From DB668A01.CUSTOMER Error at Command Line:82 Column:23 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Delete From DB668A01.CUSTOMER Where CUS_ID= 16 Error starting at line 84 in command: Delete From DB668A01.CUSTOMER Where CUS_ID= 16 Error at Command Line:84 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause:
  • 50. *Action: Connection created by CONNECT script command disconnected Security Policy F: User SJACKSON was granted INSERT, SELECT, and Update on ORDERS and ORDER_LINE table. This user is the only user besides MANAGER01 and ADMIN01 allowed object privileges (except Delete) on these two tables. Verify the user privileges and verify another user besides MANAGER01 (LWILES) and ADMIN01 (JWALKER) don’t have access. Test case scenario 1: Connect as the privileged user, SJACKSON and verify object privileges on ORDERS and ORDER_LINE table. > Connect SJACKSON/jjjjjjjS2 Connected > Show User USER is SJACKSON > INSERT INTO DB668A01.ORDERS VALUES(16, to_date('12-NOV-19','DD-MON-RR'), 5, 3) 1 rows inserted. > Update DB668A01.ORDERS Set CUS_ID = 1 Where ORD_ID = 16 1 rows updated. > Select * from DB668A01.ORDERS ORD_ID ORD_DATE CUS_ID EMP_ID ---------- --------- ---------- ---------- 16 12-NOV-19 1 3 1 12-NOV-19 1 1 2 12-NOV-19 2 2 3 12-NOV-19 3 3 4 12-NOV-19 4 4
  • 51. 5 12-NOV-19 5 5 6 12-NOV-19 6 6 7 12-NOV-19 7 7 8 12-NOV-19 8 1 9 12-NOV-19 9 2 10 12-NOV-19 10 3 11 12-NOV-19 11 4 12 12-OCT-02 12 5 13 12-OCT-02 13 6 14 12-OCT-02 14 7 15 12-OCT-02 15 7 16 rows selected > DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16 Error starting at line 59 in command: DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16 Error at Command Line:59 Column:21 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant
  • 52. the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. > INSERT INTO DB668A01.ORDER_LINE VALUES(16, 1, 5,16, 139.10) 1 rows inserted. > Update DB668A01.ORDER_LINE Set ORL_TOTCOST = 150.14 Where ORL_ID = 16 1 rows updated. > Select * from DB668A01.ORDER_LINE ORL_ID PRO_ID ORL_QTY ORD_ID ORL_TOTCOST ---------- ---------- ---------- ---------- ------------------ 16 1 5 16 150.14 1 1 1 1 138.65 2 2 1 2 44.84 3 3 1 3 182.9 4 4 1 4 178.18 5 5 1 5 138.06 6 6 1 6 144.55 7 7 1 7 148.09 8 8 1 8 148.09 9 9 1 9 152.22 10 10 1 10 152.22 11 11 1 11 173.46 12 12 1 12 330.99 13 13 1 13 384.68 14 14 1 14 381.73 15 15 1 15 123.9
  • 53. 16 rows selected > DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID = 16 Error starting at line 69 in command: DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID = 16 Error at Command Line:69 Column:21 Error report: SQL Error: ORA-01031: insufficient privileges 01031. 00000 - "insufficient privileges" *Cause: An attempt was made to change the current username or password without the appropriate privilege. This error also occurs if attempting to install a database without the necessary operating system privileges. When Trusted Oracle is configure in DBMS MAC, this error may occur if the user was granted the necessary privilege at a higher label than the current login. *Action: Ask the database administrator to perform the operation or grant the required privileges. For Trusted Oracle users getting this error although granted the the appropriate privilege at a higher label, ask the database administrator to regrant the privilege at the appropriate label. Connection created by CONNECT script command disconnected Test case scenario 2: Connect as another user besides
  • 54. Manager01 and Admin01 users and see if they have object privilege on Orders and Order_line Tables. > Connect SKILES/ssssss2# Connected > Show User USER is SKILES > INSERT INTO DB668A01.ORDERS VALUES(16, to_date('12-NOV-19','DD-MON-RR'), 5, 3) Error starting at line 51 in command: INSERT INTO DB668A01.ORDERS VALUES(16, to_date('12- NOV-19','DD-MON-RR'), 5, 3) Error at Command Line:51 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Update DB668A01.ORDERS Set CUS_ID = 1 Where ORD_ID = 16 Error starting at line 53 in command: Update DB668A01.ORDERS Set CUS_ID = 1 Where ORD_ID = 16 Error at Command Line:53 Column:16 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Select * from DB668A01.ORDERS Error starting at line 57 in command:
  • 55. Select * from DB668A01.ORDERS Error at Command Line:57 Column:23 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16 Error starting at line 59 in command: DELETE FROM DB668A01.ORDERS WHERE ORD_ID = 16 Error at Command Line:59 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > INSERT INTO DB668A01.ORDER_LINE VALUES(16, 1, 5,16, 139.10) Error starting at line 61 in command: INSERT INTO DB668A01.ORDER_LINE VALUES(16, 1, 5,16, 139.10) Error at Command Line:61 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Update DB668A01.ORDER_LINE Set ORL_TOTCOST = 150.14 Where ORL_ID = 16 Error starting at line 63 in command: Update DB668A01.ORDER_LINE Set ORL_TOTCOST = 150.14
  • 56. Where ORL_ID = 16 Error at Command Line:63 Column:16 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > Select * from DB668A01.ORDER_LINE Error starting at line 67 in command: Select * from DB668A01.ORDER_LINE Error at Command Line:67 Column:23 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: > DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID = 16 Error starting at line 69 in command: DELETE FROM DB668A01.ORDER_LINE WHERE ORL_ID = 16 Error at Command Line:69 Column:21 Error report: SQL Error: ORA-00942: table or view does not exist 00942. 00000 - "table or view does not exist" *Cause: *Action: Security Policy G: Create a policy to define four levels of security for the User Table. The policy should be as follows for the following individuals. USR_ID USR_NAME
  • 58. C300 U CREATE TABLE CREATE TABLE DB668A01.USERLVL ( USR_ID NUMBER NOT NULL, USR_NAME VARCHAR2(25), USR_SAL NUMBER, USR_DEPT VARCHAR2(25) ); CREATE POLICY EXECUTE SA_SYSDBA.CREATE_POLICY('USROLS', 'USR01', 'READ_CONTROL'); CREATE SECURITY LEVELS: U, C, S, TS EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS', 1201, 'U', 'UNCLASSIFIED'); EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS', 2201, 'C', 'CONFIDENTIAL'); EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS', 3201, 'S', 'SENSITIVE'); EXECUTE SA_COMPONENTS.CREATE_LEVEL('USROLS', 4201, 'TS', 'TOP_SECRET'); CREATE SECURITY LABELS: U, C, S, TS EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS', 1201, 'U'); EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS', 2201, 'C');
  • 59. EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS', 3201, 'S'); EXECUTE SA_LABEL_ADMIN.CREATE_LABEL('USROLS', 4201, 'TS'); GRANT USERS PRIVILEGES TO THE TABLE GRANT SELECT ON DB668A01.USERLVL TO LJONES; GRANT SELECT ON DB668A01.USERLVL TO SKILES; GRANT SELECT ON DB668A01.USERLVL TO BSMITH; GRANT SELECT ON DB668A01.USERLVL TO WNOTON; GRANT SELECT ON DB668A01.USERLVL TO SJACKSON; GRANT SELECT ON DB668A01.USERLVL TO LWILES; GRANT SELECT ON DB668A01.USERLVL TO JWALKER; SET USER LEVELS EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'LJONES', 'U'); EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'SKILES', 'C'); EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'BSMITH', 'C'); EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'WNOTON', 'C'); EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'SJACKSON', 'C'); EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'LWILES', 'S'); EXECUTE SA_USER_ADMIN.SET_LEVELS('USROLS', 'JWALKER', 'TS'); APPLY THE POLICY TO THE USERLVL TABLE
  • 60. EXECUTE SA_POLICY_ADMIN.APPLY_TABLE_POLICY('USROLS', 'DB668A01', 'USERLVL'); INSERT DATA INTO USERLVL TABLE INSERT INTO DB668A01.USERLVL VALUES(001, 'JWALKER', 95000, 'C100', 4201); INSERT INTO DB668A01.USERLVL VALUES(002, 'LWILES', 75000, 'C200', 3201); INSERT INTO DB668A01.USERLVL VALUES(003, 'BSMITH', 60000, 'C200', 2201); INSERT INTO DB668A01.USERLVL VALUES(004, 'WNOTON', 60000, 'C200', 2201); INSERT INTO DB668A01.USERLVL VALUES(005, 'SJACKSON', 65000, 'C200', 2201); INSERT INTO DB668A01.USERLVL VALUES(006, 'SKILES', 65000, 'C200', 2201); INSERT INTO DB668A01.USERLVL VALUES(007, 'LJONES', 55000, 'C300', 1201); VIEW ACCESS FOR EACH USER LEVEL User LWILES – S level CONNECT LWILES/aaaaaa1#; SHOW USER; SELECT * FROM DB668A01.USERLVL; User LJONES – U level CONNECT LJONES/bbbbb1b#;
  • 61. SHOW USER; SELECT * FROM DB668A01.USERLVL; Users SKILES, SJACKSON, WNOTON, & BSMITH – C level CONNECT SKILES/ssssss2#; SHOW USER; SELECT * FROM DB668A01.USERLVL; CONNECT SJACKSON/jjjjjjjS2; SHOW USER; SELECT * FROM DB668A01.USERLVL; CONNECT WNOTON/wwwwwww3#; SHOW USER; SELECT * FROM DB668A01.USERLVL; CONNECT BSMITH/bssssss7#; SHOW USER; SELECT * FROM DB668A01.USERLVL; User JWALKER – TS Level CONNECT JWALKER/wwwwww12#; SHOW USER;
  • 62. SELECT * FROM DB668A01.USERLVL; END OF TESTING AND POLICY IMPLEMENTATION ORDER_DETAIL ORL_ID ORD_ID ORL_TOTCOST ORL_QTY ORL_QTY ORDER_LINE ORL_ID ORD_ID PRO_ID ORL_QTY ORL_TOTCOST Taken by EMPLOYEE EMP_ID EMP_ADDR EMP_FNAME EMP_LNAME EMP_PHONE EMP_ZIP EMP_CITY EMP_STATE Contains In/Has Customer Order PRODUCT PRO_ID PRO_COST PRO_QTY
  • 63. PRO_DESC ORDERS ORD_ID ORD_DATE CUS_ID EMP_ID CUSTOMER CUS_ID CUS_FNAME CUS_LNAME CUS_ADDR CUS_CITY CUS_STATE CUS_ZIP CUS_PHONE Microsoft Office Excel Worksheet CUSTOMERLogical Data Model DefinitionsPhysical Data Model DefinitionsEntity NameEntity DefinitionAttribute NameAttribute DefinitionColumn Datatype Column Is PK?Column Is FK?CustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_IDThe customer's unique indentification number that is auto generated during insert.NUMBERYesNoCustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_FNAMEThe first name of the customerVARCHAR2(25)NoNoCustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_LNAMEThe last name of the customerVARCHAR2(25)NoNoCustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_ADDRThe address of the customerVARCHAR2(100)NoNoCustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_CITYThe city name of the customer's addressVARCHAR2(30)NoNoCustomerStores customer's
  • 64. contact information for order record keeping, sales contact, and follow ups. CUS_STATEThe state of the customer's addressVARCHAR2(2)NoNoCustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_ZIPThe zipcode of the customer's addressVARCHAR2(10)NoNoCustomerStores customer's contact information for order record keeping, sales contact, and follow ups. CUS_PHONEThe contact phone number for the customerVARCHAR2(25)NoNo EMPLOYEELogical Data Model DefinitionsPhysical Data Model DefinitionsEntity NameEntity DefinitionAttribute NameAttribute DefinitionColumn Datatype Column Is PK?Column Is FK?EMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_IDThe unique identifier assigned to each employee upon inserting the record into the database. NUMBERYesNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_FNAMEThe first name of the employeeVARCHAR2(25)NoNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_LNAMEThe last name of the employeeVARCHAR2(25)NoNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_ADDRThe first and second line address of the employeeVARCHAR2(100)NoNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_CITYThe city name of the employee's addressVARCHAR2(30)NoNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_STATEThe state of the employee's addressVARCHAR2(2)NoNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed status. EMP_ZIPThe zipcode of the employee's addressVARCHAR2(10)NoNoEMPLOYEEStores the employee's contact information, date hired, job title and current employed
  • 65. status. EMP_PHONEThe contact phone number for the employeeVARCHAR(25)NoNo PRODUCTLogical Data Model DefinitionsPhysical Data Model DefinitionsEntity NameEntity DefinitionAttribute NameAttribute DefinitionColumn Datatype Column Is PK?Column Is FK?PRODUCTThe products offered by the store. It includes a description of the product, the original quantity per productID, the price, any discounts and stock update on quantity. PRO_IDThe unique identifier for each Product ordered for the store.NumberYesNoPRODUCTThe products offered by the store. It includes a description of the product, the original quantity per productID, the price, any discounts and stock update on quantity. PRO_DESCDetail description of what the product is. VARCHAR2(100)NoNoPRODUCTThe products offered by the store. It includes a description of the product, the original quantity per productID, the price, any discounts and stock update on quantity. PRO_COSTThe original and retail price of the product.NUMBER(19,4)NoNoPRODUCTThe products offered by the store. It includes a description of the product, the original quantity per productID, the price, any discounts and stock update on quantity. PRO_QTYThe total quantity of the productNumberNoNo ORDERSLogical Data Model DefinitionsPhysical Data Model DefinitionsEntity NameEntity DefinitionAttribute NameAttribute DefinitionColumn Datatype Column Is PK?Column Is FK?ORDERSThe orders entity is the summary version of the order placed by the customer. It includes the EmployeeID and CustomerID for record keeping.ORD_IDThe unique identifier for each order placed by a customerNUMBERYesNoORDERSThe orders entity is the summary version of the order placed by the customer. It includes the EmployeeID and CustomerID for record keeping.ORD_DATEThe date of when the order was completed.DATENoNoORDERSThe orders entity is the summary version of the order placed by the customer. It includes the EmployeeID and CustomerID for record
  • 66. keeping.EMP_IDThe employeeID of the sales rep who sold the product(s) to the customer. NUMBERNoYesORDERSThe orders entity is the summary version of the order placed by the customer. It includes the EmployeeID and CustomerID for record keeping.CUS_IDThe customerID belonging purchased the itemsNUMBERNoYes ORDER_LINELogical Data Model DefinitionsPhysical Data Model DefinitionsEntity NameEntity DefinitionAttribute NameAttribute DefinitionColumn Datatype Column Is PK?Column Is FK?ORDER_LINEThe list of items per line for each orderNumber. This table contains the productId, quantity sold per productId, orderstatus and price it was sold at. ORL_IDThe unique identifier of each line for every item in an order. NUMBERYesNoORDER_LINEThe list of items per line for each orderNumber. This table contains the productId, quantity sold per productId, orderstatus and price it was sold at. ORD_IDThe OrderNumber from the orders table of the completed purchase. INTEGERNoYesORDER_LINEThe list of items per line for each orderNumber. This table contains the productId, quantity sold per productId, orderstatus and price it was sold at. PRO_IDthe Unique productID of the product soldNUMBERNoYesORDER_LINEThe list of items per line for each orderNumber. This table contains the productId, quantity sold per productId, orderstatus and price it was sold at. ORD_QTYThe number of item(s) sold per productIDNUMBER NoNoORDER_LINEThe list of items per line for each orderNumber. This table contains the productId, quantity sold per productId, orderstatus and price it was sold at. ORD_TOTCOSTThe Price of the time sold in the order.NUMBER(19,4)NoNo vw_CUSODRSLogical Data Model DefinitionsPhysical Data Model DefinitionsEntity NameEntity DefinitionAttribute NameAttribute DefinitionTable NameColumn NameColumn DatatypeVW_CUST_ORDThe customer's info and ordersCUS_IDThe unique identifier of each customer.VW_CUST_ORD_STATUSC.CUS_IDNUMBERVW_C
  • 67. UST_ORDThe customer's info and ordersCUS_FNAMEThe first name of the customerVW_CUST_ORD_STATUSC.CUS_FNAMEVARCHAR 2(25)VW_CUST_ORDThe customer's info and ordersCUS_LNAMEThe last name of the customerVW_CUST_ORD_STATUSC.CUS_LNAMEVARCHAR 2(25)VW_CUST_ORDThe customer's info and ordersCUS_ADDRThe first line address of the customerVW_CUST_ORD_STATUSC.CUS_ADDRVARCHAR2 (40)VW_CUST_ORDThe customer's info and ordersCUS_ZIPThe zipcode of the customer's addressVW_CUST_ORD_STATUSC.CUS_ZIPVARCHAR2(10) VW_CUST_ORDThe customer's info and ordersORD_IDThe unique order number tied to a customer's accountVW_CUST_ORD_STATUSO.ORD_IDNUMBERVW_C UST_ORDThe customer's info and ordersORD_DATEThe date the order was completed and tied to an OrderNumber and customer VW_CUST_ORD_STATUSO.ORD_DATEDATE