Gestiunea Utilizatorilor Si a Concurentei

6
Gestiunea utilizatorilor Obiectiv: În această lecţie se vor crea şi gestiona roluri, profile şi utilizatori. 1. Verificaţi dacă există utilizatorul cu numele INVENTORY. Puteţi să utilizaţi acest script: Select * from dba_users; Dacă acest utilizator nu există îl puteţi crea folosind sciptul de mai jos. Atenţie! Asiguraţi-vă că tablespace-ul INVENTORY este creat (vezi Gestiunea tabelelor spaţiu). drop user inventory cascade; create user inventory identified by verysecure default tablespace inventory; grant connect, resource to inventory; 2. Creaţi un profil denumit HRPROFILE, cu un timp de aşteptare de max 15 minute astfel: a) Deschideţi Enterprise Manager Console şi vă conectaţi cu utilizatorul DBA1. b) Selectaţi tab-ul Administration > Schema > Users & Privileges > Profiles. c) Click pe butonul Create. d) Introduceţi HRPROFILE în caseta de text Name. e) Introduceţi ca timp de aşteptare 15 min în caseta de text Idle Time (Minutes). f) Lăsaţi celelalte casete cu opţiunile implicite (DEFAULT). g) Click pe tab-ul Password, vizualizaţi opţiunile fără a le schimba (lăsaţi valorile DEFAULT). h) Opţional, puteţi vizualiza codul SQL generat automat făcând click pe butonul Show SQL, la final click Return. i) La final, click pe OK pentru a crea profilul. 3. Pentru a funcţiona restricţiile de timp, setaţi parametrul de iniţializare RESOURCE_LIMIT la valoarea TRUE astfel: a) Selectaţi tab-ul Administration > Database Administration > Database Configuration > All Initialization Parameters. b) În caseta de text Filter introduceţi RESOURCE_LIMIT şi click Go. c) Selectaţi valoarea TRUE din lista de valori Value şi click Apply.

description

Seminar 3 Master de Aprofundare Informatica Economica - Facultatea de Cibernetica,Statistica si Informatica Economica ASE.

Transcript of Gestiunea Utilizatorilor Si a Concurentei

Gestiunea utilizatorilor

Gestiunea utilizatorilorObiectiv: n aceast lecie se vor crea i gestiona roluri, profile i utilizatori.

1. Verificai dac exist utilizatorul cu numele INVENTORY. Putei s utilizai acest script:

Select * from dba_users;

Dac acest utilizator nu exist l putei crea folosind sciptul de mai jos. Atenie! Asigurai-v c tablespace-ul INVENTORY este creat (vezi Gestiunea tabelelor spaiu).

drop user inventory cascade;

create user inventory identified by verysecure

default tablespace inventory;

grant connect, resource to inventory;

2. Creai un profil denumit HRPROFILE, cu un timp de ateptare de max 15 minute astfel:a) Deschidei Enterprise Manager Console i v conectai cu utilizatorul DBA1.

b) Selectai tab-ul Administration > Schema > Users & Privileges > Profiles.

c) Click pe butonul Create.

d) Introducei HRPROFILE n caseta de text Name.

e) Introducei ca timp de ateptare 15 min n caseta de text Idle Time (Minutes).

f) Lsai celelalte casete cu opiunile implicite (DEFAULT).

g) Click pe tab-ul Password, vizualizai opiunile fr a le schimba (lsai valorile DEFAULT).

h) Opional, putei vizualiza codul SQL generat automat fcnd click pe butonul Show SQL, la final click Return.

i) La final, click pe OK pentru a crea profilul.

3. Pentru a funciona restriciile de timp, setai parametrul de iniializare RESOURCE_LIMIT la valoarea TRUE astfel:

a) Selectai tab-ul Administration > Database Administration > Database Configuration > All Initialization Parameters.

b) n caseta de text Filter introducei RESOURCE_LIMIT i click Go.

c) Selectai valoarea TRUE din lista de valori Value i click Apply.4. Creai un rol denumit HRCLERK cu drepturi de SELECT i UPDATE pe tabela HR.EMPLOYEES astfel:a) Selectai tab-ul Administration > Schema > Users & Privileges > Roles.

b) Click pe butonul Create din dreapta paginii.

c) Introducei ca denumire HRCLERK n caseta de text Name.

d) Click pe Object Privileges.

e) Selectai opiunea Table din lista de valori Select Object Type i click pe Add.

f) Introducei HR.EMPLOYEES n caseta de text Select Table Objects.

g) Cu mouse-ul mutai drepturile de SELECT i UPDATE n caseta Selected Privileges. Click OK.

h) Click pe butonul Show SQL pentru a vizualiza codul surs SQL.

i) Click Return pentru a reveni i apoi click OK pentru a crea rolul.5. Creai un alt rol denumit HRMANAGER care are drepturi de INSERT i DELETE pe tabela HR.EMPLOYEES. Acordai rolul HRCLERK rolului HRMANAGER astfel:

a) Selectai tab-ul Administration > Schema > Users & Privileges > Roles.

b) Click Create.

c) Introducei denumirea HRMANAGER n caseta de text Name.

d) Click pe Object Privileges.

e) Selectai Table din lista de valori Select Object Type i click Add.

f) Introducei HR.EMPLOYEES n caseta de text Select Table Objects.

g) Mutai cu mouse-ul drepturile de INSERT i DELETE n caseta Selected Privileges. Click OK.

h) Click Roles i apoi click Edit List.

i) Mutai rolul HRCLERK n caseta Selected Roles i apoi click OK.j) Click pe butonul Show SQL pentru a vizualiza codul surs SQL.

k) Click Return pentru a reveni i apoi click OK pentru a crea rolul.6. Creai un cont pentru un angajat al departamentului HR cu numele de David, astfel:

a) Selectai tab-ul Administration > Schema > Users & Privileges > Users.

b) Click Create i introducei DAVID n caseta de text Name.

c) Selectai HRPROFILE ca profil pentru acest utilizator.

d) Selectai Password Authentication, i introducei ca parol: newuser (la fel i n caseta de text Confirm Password). Selectai opiunea Expire Password now astfel nct utilizatorul s-i schimbe parola dup la prima conectare.e) Click pe Roles. Observai c n EM rolul CONNECT este implicit acordat utilizatorului.

f) Acordai rolul HRCLERK fcnd click pe Edit List i mutnd rolul HRCLERK n caseta

Selected Roles. Click OK pentru a nchide fereastra Modify Roles.g) Click OK pentru a crea utilizatorul.7. Creai un alt utilizator pentru un alt angajat al departamentului HR cu numele Mihaela urmrind aceeai pai ca la punctul 6.

8. Creai un alt utilizator pentru un nou manager al departamentului HR cu numele Marcel urmrind aceeai pai ca la punctul 6, dar selectai rolul HRMANAGER n loc de HRCLERK.

9. Testai dac utilizatorii creai anterior se pot conecta prin deschiderea unei sesiuni SQL*Plus i ncercai s realizai anumite operaii astfel:

a) V conectai n iSQLPLUS cu utilizatorul DAVID i parola NEWUSER. Va apare mesajul prin care suntei rugai s schimbai parola. Introducei o nou parol pentru acest utilizator. b) Selectai salariul angajatului cu ID-ul =197 din tabela HR.EMPLOYEES:

SELECT salary FROM hr.employees WHERE EMPLOYEE_ID=197;c) ncercai s tergei acest angajat:DELETE FROM hr.employees WHERE EMPLOYEE_ID=197;Vei observa un mesaj de eroare prin care suntei avertizai c nu avei suficiente drepturi.10. ncercai s v conectai cu utilizatorul Marcel (HR manager) i s realizai aceleai operaii. Observai c se poate realiza tergerea unei nregistrri din tabela HR.EMPLOYEES. La final anulai tergerea prin comanda ROLLBACK.11. V conectai cu utilizatorul Mihaela, schimbai parola i rmnei conectai aproximativ 20-25 de minute. Dup aceast perioad ncercai s selectai angajaii din tabela HR.EMPLOYEES. Observai mesajul de eroare aprut. Datorit limitrii de timp utilizatorul a fost deconectat dup 15 min.Gestiunea concurenei

Obiectiv: vizualizarea i deblocarea anumitor resurse la care au acces mai muli utilizatori simultan.

1. Provocai o blocare a unei resurse (tabele) prin realizarea unei actualizri a nregistrrilor fr finalizarea tranzaciei respective. Aparent sesiunea se va bloca. Sunt creai 2 utilizatori noi, angajai ai departamentului HR care au acces concurent la tabela HR.EMPLOYEES.

a) Creai utilizatorii i le acordai drepturile de acces:

Prompt se creaza utilizatorii

-- Se sterg utilizatorii in cazul in care exista dj:

drop user spopa;

drop user ngeorgescu;

drop role hremployee;

-- Creati un rol pentru a gestiona drepturile acestor utilizatori

create role hremployee;

grant create session to hremployee;

grant select, update on hr.employees to hremployee;

grant hremployee to spopa identified by stud;

grant hremployee to ngeorgescu identified by stud;

b) V conectai cu utilizatorul ngeorgescu i modificai nr de telefon al angajatului cu ID-ul 110

--la conectare n comanda de mai jos adaugati si numele bazei de date (de exemplu @orcl) sau va conectati prin varianta vizuala

connect ngeorgescu/stud

set echo on

show user

update hr.employees set phone_number='650.555.1212' where employee_id = 110;

prompt Utilizatorul "ngeorgescu" a realizat o actualizare fara a finaliza tranzacia.

c) Lsai sesiunea anterioar deschis i ntr-o alt fereastr SQL v conectati cu utilizatorul ngeorgescu si modificati nr de telefon al angajatului cu ID-ul 110. Atenie! Trebuie s rulai acest script ntr-o alt sesiune (fereastr SQL):

--la conectare n comanda de mai jos adaugati si numele bazei de date (de exemplu @orcl) sau va conectati prin varianta vizuala

connect spopa/stud

show user

prompt Se incearca un nou Update

update hr.employees set phone_number='650.555.1212' where employee_id = 110;

prompt Actualizarea s-a finalizat

Observai c sesiunea aceasta este blocat i pare s nu reacioneze la comenzi.

2. Deschidei Enterprise Manager i rezolvai blocarea sesiunilor.

a) In Enterprise Manager, click pe pagina Performance.

b) Click pe Blocking Sessions din zona Additional Monitoring Links.

Vizualizai sesiunile care sunt blocate.

3. Vizualizai detaliile sesiunilor blocate:

a) Selectai sesiunea ngeorgescu i click pe butonul View Session.

b) n seciunea Application facei click pe link-ul din dreptul Previous SQL.

c) n fereastra aprut observai comanda SQL care a generat blocarea (apare n seciunea TEXT).

4. Rezolvai conflictul prin terminarea unei sesiuni - n cazul nostru a sesiunii utilizatorului ngeorgescu.

a) Click pe butonul Back al browseru-lui.

b) Selecai NGeorgescu i click pe butonul Kill Session.

c) n fereastra aprut lsai opiunea implicit (Kill Immediate) i vizualizai comanda SQL (click pe Show SQL).

d) Click Return i apoi click Yes pentru a termina sesiunea.

5. Revenii n fereastra aferent sesiunii utilizatorului spopa i observai c actualizarea s-a finalizat cu succes.

Atenie! La nchiderea unei ferestre SQL tranzaciile deschise n acea sesiune sunt finalizate, fie prin ROLLBACK fie prin COMMIT n funcie de opiunile iniiale. Implicit este COMMIT. De asemenea, dac dup execuia unei comenzi DML (insert, update, delete) se execut o comand DDL (create, alter, drop) sau de gestiune a utilizatorilor (grant, revoke) tranzaciile sunt automat finalizate.