Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
4.2 kB
4
Indexable
Never
(numer zadania inkrementuje gdy przelaczam sie na innego uzytkownika (admin,user1,pom itp))

1. CREATE USER 'user1'@'localhost' IDENTIFIED BY '';
GRANT SELECT ON uczelnia.funkcje TO 'user1'@'localhost';

2. SELECT * FROM funkcje;
DELETE FROM funkcje;
SELECT * FROM zespoły;
//Pierwsze polecenie zadzialalo drugie i trzecie powoduje bledy poniewaz user1 nie ma uprawnien do usuwania tabeli funkcje, ani wyswietlania tabeli zespoly

3. GRANT DELETE ON uczelnia.studenci TO 'user1'@'localhost';

4. SELECT * FROM studenci;
DELETE FROM studenci WHERE NR_STUD = 1;
//wyswietlanie nie dziala poniewaz nie dalismy user1 dostepu do wyswietlania, co nie bylo zaskoczeniem, ale delete niezadzialalo, a komunikat bledu wyswietlil ze select command denied, czyli kwerenda delete musi korzystać z SELECT by dzialac prawidlowo

5. GRANT SELECT ON uczelnia.studenci TO 'user1'@'localhost';

6. DELETE FROM studenci WHERE NR_STUD = 1;
//Zadzialalo, czyli teza z zad4 byla sluszna

7. create view kier as select nr_kier,nazwa_kier from kierunki k join instytuty i
on k.nr_inst=i.nr_inst where nazwa_inst='informatyki';
GRANT SELECT ON uczelnia.kier TO 'user1'@'localhost';

8. SELECT * FROM uczelnia.kier;
SELECT * FROM uczelnia.kierunki;
SELECT * FROM uczelnia.kier;

UPDATE uczelnia.kierunki
SET nazwa_kier = 'ELEKTRO'
WHERE nazwa_kier = 'BUDOWA MC';
//SELECT na perspektywe zadzialal, ale nie zadzialal dla tabeli kierunki poniewaz user1 nie ma uprawnien do przegladania tabeli kierunki oraz nie moze modyfikowac tabeli kierunki wiec update tez nie zadzialal, zrobilem tez update dla perspektywy ale tez nie ma uprawnien wiec SQL Error

9. GRANT UPDATE ON uczelnia.kier TO 'user1'@'localhost';

10. UPDATE uczelnia.kier
SET nazwa_kier = 'ELEKTRO'
WHERE nazwa_kier = 'BUDOWA MC';
//dziala, wiec przypuszczenia sie potwierdzily
ale dla tabeli kierunki dalej nie dziala

11. UPDATE uczelnia.kier
SET nazwa_kier = 'ELEKTRO'
WHERE nazwa_kier = 'BUDOWA MC';
//Skompilowalo sie, ale nazwa juz byla zmieniona, wiec jakby nic sie nie stalo

create view kier2 as select nr_kier,nazwa_kier from kierunki;
Update uczelnia.kier2 Set nazwa_kier = 'ELEKTRO' Where nazwa_kier = 'BUDOWA MC';
//Okazalo sie ze w tabeli kierunki ktorj teoretycznie nie ruszalem tez nazwa sie zmienila z Budowa_MC na ELEKTRO (pewnie juz wczesniej)

GRANT SELECT ON uczelnia.kier2 TO 'user1'@'localhost';
GRANT UPDATE ON uczelnia.kier2 TO 'user1'@'localhost';

12. UPDATE uczelnia.kier2
SET nazwa_kier = 'BUDOWA MC'
WHERE nazwa_kier = 'ELEKTRO';

//nazwa zmienila sie w kier i kier2, ale w tabeli kierunki tez, a do niej nie mamy nawet bezpośredniego dostępu

13. Create user 'pom'@'localhost' IDENTIFIED BY '';
GRANT SELECT ON uczelnia.sale TO 'pom'@'localhost';

14. SELECT * FROM uczelnia.sale;
GRANT SELECT ON uczelnia.sale TO 'user1'@'localhost';
//Uzytkownik pom nie ma uprawnien do nadawania uprawnien, wiec nie moze nadac ich userowi1.

15. GRANT SELECT ON uczelnia.sale TO 'pom'@'localhost' WITH GRANT OPTION;

16. GRANT SELECT ON uczelnia.sale TO 'user1'@'localhost';
//Nadano uprawnienia userowi1, czyli teza z 14 potwierdzona

17. SELECT * from sale;

18. ALTER TABLE uczelnia.oceny
ADD CONSTRAINT FK_Oceny_Przedmioty
FOREIGN KEY (NR_PRZEDM) REFERENCES uczelnia.przedmioty(NR_PRZEDM);

INSERT INTO uczelnia.oceny (NR_STUD, NR_PRZEDM, DATA_ZAL, TERMIN, ZAL_EGZ, OCENA)
VALUES ('123456', '80000', '2023-11-10 00:00:00', '10', 'Z', '5');
// udalo sie dodac chociaz z nr_stud domyslnym i nr_przedm tez, ale i tak udalo sie dodac co wydaje mi sie ze wynika z faktu ze jestem jako admin, ktory pewnie lamie takie ograniczenia, ewentualnie moze root moze zablokowac adminowi, ale nie sprawdzalem

19.ALTER TABLE uczelnia.rozklady
ADD CONSTRAINT FK_Rozklady_Sale
FOREIGN KEY (NR_SALI) REFERENCES uczelnia.sale(NR_SALI)
ON DELETE RESTRICT;

DELETE FROM uczelnia.sale WHERE NR_SALI = 1;
//usunela sie jako admin, jako user1 nie ma uprawnien do usuwania
dodalem uprawnienia user1 do usuwania z sale i udalo sie usunac

GRANT DELETE ON uczelnia.sale TO 'user1'@'localhost';

SET FOREIGN_KEY_CHECKS=1;
//pomyslalem ze moze klucz obcy trzeba jeszcze aktywowac ale pomimo tego dalej moge usuwac
Leave a Comment