Bezpieczeństwo serwera baz danych na przykładzie serwera MySQL. Administracja serwerem baz danych. Zadania administratora serwera baz danych.

Bezpieczeństwo serwera baz danych MySQL

Serwer baz danych, tak jak każda aplikacja internetowa, jest narażona na różnego rodzaju ataki sieciowe. Serwer baz danych nasłuchuje najczęściej na porcie TCP 3306 i jest narażony na takie same rodzaje ataków, jak inne aplikacje internetowe, m.in. przepełnienie bufora, podszywanie się pod inne IP, ataki [D]DoS, sniffing i inne. Najczęściej w bazie danych znajdują się bardzo ważne dane, które powinny być szczególnie chronione przed dostępem niepowołanych osób.

Czytaj dalej

Powtórzenie wiadomości

1. Wypisz: region, ilość pracowników, uwzględnij tylko te regiony, gdzie ilość pracowników jest większa niż 5. Posortuj malejąco wg ilości pracowników.

1-1

SELECT R.name AS nazwaRegionu, COUNT(E.id) AS iloscPracownikow
FROM emp E JOIN dept D ON D.id = E.dept_id
RIGHT JOIN region R on R.id = D.region_id
GROUP BY R.name
HAVING COUNT(*) > 5
ORDER BY COUNT(E.id) DESC;

 

2. Wypisz: tytuł zawodowy, ilość pracowników, średnie wynagrodzenie, uwzględnić tylko tych, których średnie wynagrodzenie jest większe niż $700. Dane posortować wg tych tytułów zawodowych.

1-2

SELECT E.title as tytulZawodowy, COUNT(*) AS iloscPracownikow, AVG(salary) as srednieWynagrodzenie
FROM emp E
GROUP BY E.title
HAVING AVG(salary) > 700
ORDER BY title;

 

3. Wyświetlić imię i nazwisko pracownika (konkatenacją), imię i nazwisko jego managera. Zastosuj aliasy. Posortuj wg nazwisk i imion pracowników. Uwzględnić także tych pracowników, którzy nie mają managera.

1-3

SELECT CONCAT(Ez.first_name, ' ', Ez.last_name) AS pracownik, CONCAT(Ew.first_name, ' ', Ew.last_name) AS manager
FROM emp Ez LEFT JOIN emp Ew ON Ez.manager_id=Ew.id
ORDER BY Ez.last_name, Ez.first_name;

 

4. Pobierz z bazy danych: imię i nazwisko przedstawiciela handlowego, kraj i ilość klientów w tym kraju. Posortuj wg nazwiska i imienia pracownika oraz ilości klientów w danym państwie.

SELECT CONCAT(E.id, ' ', E.first_name, ' ', E.last_name) AS przedstawicielHandlowy, C.country AS kraj, COUNT(C.id) AS iloscKlientow
FROM emp E RIGHT JOIN customer C ON E.id = C.sales_rep_id
GROUP BY E.id, C.country
ORDER BY E.last_name, E.first_name, COUNT(C.id) DESC;

1-45. Zwiększyć o 5% cenę produktu, którego sprzedaż była największa.