W tym zadaniu nauczysz się, jak po raz pierwszy zalogować się do serwera baz danych MariaDB/MySQL za pomocą wiersza poleceń. Dowiesz się, jak ważne jest ustawienie hasła dla głównego administratora (użytkownika root), który domyślnie go nie posiada w pakiecie XAMPP. Stworzysz także nowych użytkowników z ograniczonymi uprawnieniami, co jest podstawową zasadą bezpieczeństwa. Zrozumiesz koncepcję user@host, która definiuje, z jakich adresów sieciowych dany użytkownik może się łączyć z serwerem.
Po pomyślnej instalacji serwera baz danych w poprzednim zadaniu, nadszedł czas, abyś zrobił pierwszy krok w kierunku administrowania nim. Twoim celem jest zabezpieczenie dostępu do serwera, ponieważ domyślna konfiguracja jest niezabezpieczona i otwarta na potencjalne ataki, nawet w sieci lokalnej. Rozpoczniesz od zalogowania się na konto superużytkownika, czyli root, używając monitora mysql. Następnie, jako administrator, nadasz temu kontu silne hasło, aby nikt niepowołany nie mógł uzyskać pełnej kontroli nad serwerem. Kolejnym krokiem będzie stworzenie dwóch nowych, dedykowanych kont użytkowników: student1 i student2. Każde z tych kont będzie miało inne ograniczenia dotyczące miejsca, z którego można się logować. Jedno konto będzie mogło łączyć się tylko z lokalnego komputera poprzez nazwę localhost, a drugie przez adres pętli zwrotnej 127.0.0.1. Wyjaśnimy subtelne różnice między tymi podejściami. Na koniec nadasz tym użytkownikom minimalne uprawnienia, wystarczające jedynie do logowania, aby w przyszłości móc je rozszerzać zgodnie z potrzebami, stosując zasadę minimalnych przywilejów. Cały proces zakończysz poleceniem odświeżającym uprawnienia w systemie, aby wszystkie zmiany zostały natychmiast zastosowane.
cmd.exe w systemie Windows.cd C:\xampp\mysql\bin.mysql -u root. Ponieważ użytkownik root nie ma jeszcze hasła, zostaniesz zalogowany bezpośrednio do monitora MariaDB/MySQL.'TwojeSilneHaslo123!' własnym, skomplikowanym hasłem.
            exit; aby opuścić monitor.-p, która poprosi o hasło: mysql -u root -p. Po wciśnięciu Enter, zostaniesz poproszony o podanie hasła. Wpisz hasło ustawione w poprzednim kroku.'student'@'localhost' oznacza, że użytkownik student może logować się tylko z tego samego komputera. 'student'@'%' oznacza, że może logować się z dowolnego komputera w sieci (co jest niebezpieczne).localhost: Zazwyczaj tłumaczone na adres IP 127.0.0.1, ale połączenie odbywa się przez tzw. gniazdo (socket) systemu Unix lub potok nazwany (named pipe) w Windows, co jest szybsze i bezpieczniejsze.127.0.0.1: To adres pętli zwrotnej (loopback), który zawsze wskazuje na lokalny komputer. Połączenie odbywa się przez stos TCP/IP, co jest nieco wolniejsze niż przez gniazdo.% lub *: Symbol wieloznaczny oznaczający "dowolny host".student1, który będzie mógł logować się tylko przez localhost. Wpisz w monitorze MySQL:
            student2, który będzie mógł logować się tylko przez adres IP 127.0.0.1.
            USAGE, które pozwala jedynie na połączenie z serwerem.
            *.* oznacza "wszystkie bazy danych, wszystkie tabele".
        CREATE USER czy GRANT), dobrą praktyką jest wykonanie polecenia, które przeładowuje te uprawnienia w pamięci serwera.
            exit;.student1: mysql -u student1 -p. Podaj hasło 'HasloStudenta1!'.student1, spróbuj wykonać polecenie SHOW DATABASES;. Powinieneś zobaczyć tylko bazę information_schema, co potwierdza, że użytkownik nie ma dostępu do innych zasobów.student2: mysql -u student2 -p -h 127.0.0.1. Użycie flagi -h jest konieczne, aby wymusić połączenie przez TCP/IP.Poniżej skonsolidowane polecenia SQL do zarządzania użytkownikami. Możesz je skopiować i wkleić do monitora MySQL.
-- Krok 1: Ustawienie hasla dla uzytkownika root ALTER USER 'root'@'localhost' IDENTIFIED BY 'TwojeSilneHaslo123!'; -- Krok 2: Tworzenie nowych uzytkownikow CREATE USER 'student1'@'localhost' IDENTIFIED BY 'HasloStudenta1!'; CREATE USER 'student2'@'127.0.0.1' IDENTIFIED BY 'HasloStudenta2!'; -- Krok 3: Nadanie minimalnych uprawnien (tylko do logowania) GRANT USAGE ON *.* TO 'student1'@'localhost'; GRANT USAGE ON *.* TO 'student2'@'127.0.0.1'; -- Krok 4: Przeladowanie uprawnien FLUSH PRIVILEGES; -- Krok 5: Weryfikacja - wyswietlenie uzytkownikow SELECT User, Host FROM mysql.user;
+---------------------------------------------------+
|                                                   |
|   C:\> cd C:\xampp\mysql\bin                       |
|   C:\xampp\mysql\bin> mysql -u root -p            |
|   Enter password: ****                            |
|                                                   |
|   Welcome to the MariaDB monitor.                 |
|   ...                                             |
|                                                   |
|   MariaDB [(none)]> CREATE USER 'stud'@'host';    |
|   Query OK, 0 rows affected (0.01 sec)            |
|                                                   |
|   MariaDB [(none)]> _                             |
|                                                   |
+---------------------------------------------------+
    
    'P@ssw0rd!23', etc.) są tylko przykładami i nie powinny być używane w środowisku produkcyjnym.FLUSH PRIVILEGES: Chociaż serwer zazwyczaj automatycznie odświeża uprawnienia po poleceniach GRANT czy REVOKE, jawne wywołanie FLUSH PRIVILEGES jest zalecane, zwłaszcza przy modyfikacjach tabel systemowych (np. mysql.user) za pomocą INSERT, UPDATE, DELETE.SELECT) lub modyfikacji (INSERT, UPDATE) danych w konkretnych tabelach.