Pomoc z zapytaniem SQL

0

Witam,
Mam takie polecienie i nie bardzo umiem sobie z nim poradzić (głównie punkty 2, 3 i 4):

W bazie danych systemu rejestracji wypożyczalni sprzętu narciarskiego zostały utworzone następujące tabele:
Sprzet_narciarski (id_sprzetu, id_rodz_sprzetu, rok_produkcji, rozmiar, id_marki, zuzyty)
Rodzaj_sprzetu (id_rodz_sprzetu, nazwa)
Wypozyczenia (id_sprzetu, data_wypozyczenia, data_zwrotu)

  1. Utworzyć użytkownika wlasciciel o haśle wlasciciel. Nadać mu uprawnienia, umożliwiające przeglądanie, wstawianie i modyfikowanie danych w tabeli Wypozyczenia z możliwością delegacji tych uprawnień pozostałym użytkownikom.
  2. Utworzyć użytkownika pracownik_narty o haśle pracownik. Umożliwić mu wstawianie i modyfikowanie informacji tylko o nartach (NARTY w polu nazwa tabeli Rodzaj_sprzetu).
  3. Temu samemu użytkownikowi, umożliwić usuwanie informacji o sprzęcie zużytym (pole zuzyty tabeli Sprzet_narciarski ustawione na tak).
  4. Tak zmodyfikować tabele, by nie można było wypożyczyć sprzętu, który nie został wprowadzony do bazy danych i nie można było usunąć sprzętu, który jest wypożyczony
0

2,3: https://dev.mysql.com/doc/refman/8.0/en/grant.html#grant-column-privileges - przywileje dla kolumn (GRANT UPDATE(col_name))
4. https://www.w3schools.com/mysql/mysql_constraints.asp - kwestia definicji odpowiedniego ograniczenia dla relacji w tabeli (ON UPDATE/ON DELETE RESTRICT)

2

Nikt nie zrobi tego za Ciebie, wątki wyłudzające/żebrzące o gotowce trafiają do kosza. Także - pokaż, co już masz, napisz konkretnie, czego nie rozumiesz i gdzie utknąłeś to postaramy się pomóc. Ale post, w którym wrzucasz zadanie i czekasz na rozwiązanie nie jest czymś, co tutaj akceptujemy.

0

Utknąłem na tym jak zrobić aby modyfikować informację tylko o nartach w punkcie 2. Zrobiłem coś takiego wykorzystując perspektywę:

CREATE VIEW Pracownik_narty_view AS
SELECT *
FROM Rodzaj_sprzetu
WHERE nazwa = 'NARTY';

GRANT INSERT, UPDATE ON Pracownik_narty_view TO pracownik_narty;

Tylko nie wiem jak to powiązac z tabelą sprzet_narciarski

EDIT:
Coś takiego jest ok?

CREATE VIEW Pracownik_narty_view AS
SELECT *
FROM Rodzaj_sprzetu r, Sprzet_narciarski s
WHERE r.id_rodz_sprzetu = s.id_rodz_sprzetu and nazwa = 'NARTY';

W 3 mam tak:

GRANT DELETE ON Sprzet_narciarski TO pracownik_narty WHERE zuzyty = 'tak';

1 użytkowników online, w tym zalogowanych: 0, gości: 1