You are on page 1of 18

Khelili Selma Group3

Lab2 Report And Lab3

CREATE USER C##ADMIN IDENTIFIED BY ADMIN CONTAINER = ALL;

connect C##ADMIN/ADMIN;

Grant Create Session to C##ADMIN;

connect C##ADMIN/ADMIN;

Grant CREATE TABLE, CREATE USER TO C##ADMIN;

Select * from C##DBA_INTERVENTION2.EMPLOYEE_;

What do you notice?

We have no right to access this table


Khelili Selma Group3

GRANT SELECT ON EMPLOYEE_ TO C##ADMIN;

select * from C##DBA_INTERVENTION2.EMPLOYEE_;

select employeenumber, interventionumber from C##DBA_INTERVENTION2.participants;

connect C##DBA_INTERVENTION2/ensia2022;

grant select on participants_ to C##ADMIN;

GRANT UPDATE ON EMPLOYEE_ TO C##ADMIN;

connect C##ADMIN/ADMIN;

Grant update on participants_ to C##ADMIN ;

update (select E.salary FROM

( select P.employeenumber as emp, count(interventionnumber) as cpi

FROM C##DBA_INTERVENTION2.PARTICIPANTS_ P group by P.employeenumber)

Join C##DBA_INTERVENTION2.EMPLOYEE_ E ON E.employeenumber=emp

WHERE cpi>=4) set salary=salary+5000;

----------------OR-----------------------

update (select salary FROM

(select P.employeenumber as emp, count(interventionnumber) as cpi

FROM C##DBA_INTERVENTION2.PARTICIPANTS_ P

group by P.employeenumber), C##DBA_INTERVENTION2.EMPLOYEE_ E

WHERE cpi>=4 AND E.employeenumber=emp)

set salary=salary+5000;
Khelili Selma Group3

GRANT UNLIMITED TABLESPACE TO C##ADIMIN;

CREATE INDEX LASNAME_EMP ON EMPLOYEE_ (LASTNAMEEMP DESC);

GRANT INDEX ON EMPLOYEE_ TO C##ADMIN;

SELECT * FROM USER_SYS_PRIVS;


Khelili Selma Group3

REVOKE SELECT ON EMPLOYEE_ FROM C#ADMIN;

SELECT * FROM USER_SYS_PRIVS;

Profile Creation
Khelili Selma Group3

15.

Create the Role using DbaIntervention

alter session set "_ORACLE_SCRIPT"=true;

CREATE ROLE INTERVENTION_MANAGER;

GRANT SELECT ON EMPLOYEE_ TO INTERVENTION_MANAGER;

GRANT SELECT ON VEHICLE_ TO INTERVENTION_MANAGER;

GRANT SELECT ON CUSTOMER TO INTERVENTION_MANAGER;

GRANT UPDATE ON INTERVENTIONS TO INTERVENTION_MANAGER;

GRANT UPDATE ON PARTICIPANTS_ TO INTERVENTION_MANAGER;

16\ GRANT INTERVENTION_MANAGER TO ADMIN;

Connect to ADmin

SELECT * FROM USER_ROLE_PRIVS;


Khelili Selma Group3

Lab 3

select count(*) from dict;

Roles:

select comments from dict where table_name='ALL_TAB_COLUMNS';

select COMMENTS from dict where table_name='USER_USERS';


Khelili Selma Group3

select COMMENTS from dict where table_name='ALL_CONSTRAINTS';

select COMMENTS from dict where table_name='USER_TAB_PRIVS';

Structure:

desc all_tab_columns
Khelili Selma Group3

desc USER_USERS

desc ALL_CONSTRAINTS
Khelili Selma Group3

desc USER_TAB_PRIVS

select username from user_users;

/********* OR ******/

SHOW USER
Khelili Selma Group3

desc ALL_TAB_COLUMNS

desc USER_TAB_COLUMNS
Khelili Selma Group3

/* What's the difference between them?*/

ALL_Tabs_Columns needs an owner name while USER_TAB_COLUMNS doesn’t since it already is


assigned to the user we view.
Khelili Selma Group3

5\ SELECT DISTINCT(table_name) FROM ALL_TAB_COLUMNS where owner='


C##DBA_INTERVENTION2';

6\ SELECT DISTINCT(table_name) FROM ALL_TAB_COLUMNS where owner=


‘C##DBA_INTERVENTION2';

SELECT DISTINCT(table_name) FROM ALL_TAB_COLUMNS where owner='SYS';


Khelili Selma Group3

7\

connect C##DBA_INTERVENTION2/ensia2022

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='VEHICLE_';

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='INTERVENTIONS';

/********* OR ******/

SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME='VEHICLE_';

SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE


TABLE_NAME='INTERVENTIONS';
Khelili Selma Group3

8\ SELECT constraint_name FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'R' AND


table_name='INTERVENTIONS';

SELECT constraint_name FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'C' AND


table_name='CUSTOMER';

9\

SELECT * FROM USER_CONSTRAINTS;

/********* OR ******/

SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS;


Khelili Selma Group3

10\

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='INTERVENTIONS';

/***** AND **********/

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME='INTERVENTIONS';


Khelili Selma Group3

11\ connect C##ADMIN/ADMIN;

SELECT privilege FROM USER_SYS_PRIVS;

12\ select GRANTED_ROLE from USER_ROLE_PRIVS;

13\

DISCONNECT

CONNECT SYS AS SYSDBA

SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OWNER='C##ADMIN';


Khelili Selma Group3

Meanwhile :

SELECT OBJECT_NAME FROM ALL_OBJECTS WHERE OWNER=' C##DBA_INTERVENTION2’;

14\ SELECT OWNER FROM ALL_TABLES WHERE TABLE_NAME='INTERVENTIONS';

15\DISCONNECT

CONNECT C##DBAINTERVETION/ensia2022

SELECT BYTES/1024 FROM USER_SEGMENTS WHERE SEGMENT_NAME='INTERVENTIONS';

16\ grant create table to c##Admin;


Khelili Selma Group3

connect c##Admin/Admin

/* create the TABLE employee again */

CREATE TABLE EMPLOYEE_(

EMPLOYEENUMBER NUMBER NOT NULL,

LASTNAMEEMP CHAR(50), FIRSTNAMEEMP CHAR(50), EMPLOYEECATEGORY CHAR(15),

SALARY NUMBER (6,2),

CONSTRAINT pk_EMPLOYEE PRIMARY KEY (EMPLOYEENUMBER),

CONSTRAINT ck_EMPLOYEECATEGORY CHECK (EMPLOYEECATEGORY in ('Mechanic', 'Assistant'))

);

select table_name from user_tables;

select column_name from user_tab_columns;

You might also like