Pomoc z zapytaniem SQL

Pomoc z zapytaniem SQL
RN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
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
Szado
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 64
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)

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9018
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.

RN
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

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

Kopiuj
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?

Kopiuj
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:

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.