0% found this document useful (0 votes)
8 views

Lab2 Report and Lab3

The document discusses granting various privileges to the user C##ADMIN in an Oracle database. It grants C##ADMIN the ability to view, update, and manage tables. It also creates a role called INTERVENTION_MANAGER and grants it privileges to select data from various tables. The document then describes the structure of some database dictionary views and shows the privileges and objects associated with different user accounts.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Lab2 Report and Lab3

The document discusses granting various privileges to the user C##ADMIN in an Oracle database. It grants C##ADMIN the ability to view, update, and manage tables. It also creates a role called INTERVENTION_MANAGER and grants it privileges to select data from various tables. The document then describes the structure of some database dictionary views and shows the privileges and objects associated with different user accounts.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 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