Zarządzanie użytkownikami i uprawnienia
W tym odcinku opanujesz zadania z zarządzania kontami MySQL: tworzenie użytkownika i nadawanie uprawnień. Zadania z tej kategorii są bardzo przewidywalne – zawsze pojawia się jeden z dwóch scenariuszy.
Dwa scenariusze egzaminacyjne
| Scenariusz | Opis |
|---|---|
A – tylko CREATE USER |
Utwórz konto z hasłem, bez uprawnień |
B – CREATE USER + GRANT |
Utwórz konto i nadaj konkretne prawa do wybranej tabeli lub całej bazy |
Mapowanie słów z zadania na uprawnienia SQL:
| Słowo z zadania | Uprawnienie SQL |
|---|---|
| przeglądanie / odczyt danych | SELECT |
| aktualizacja / modyfikacja | UPDATE |
| wstawianie danych | INSERT |
| usuwanie danych | DELETE |
| wszystkie prawa | ALL PRIVILEGES |
Zadanie 1: CREATE USER – tworzenie konta
- Cel: Rejestracja nowej tożsamości w systemie zarządzania bazą danych (DBS).
- Standard: Zastosowanie wzorca
CREATE USER 'nazwa'@'host' IDENTIFIED BY 'haslo'. Host'localhost'ogranicza dostęp tylko do maszyny lokalnej, co jest standardem bezpieczeństwa w zadaniach egzaminacyjnych.
Wzorzec:
Przykłady:
Wskazówka: Oba człony – nazwa i host – muszą być w apostrofach:
'Anna'@'localhost'. Wielkość liter w haśle ma znaczenie. Znak@w haśle nie wymaga uciekania.
Zadanie 2: GRANT – nadawanie uprawnień
- Cel: Zarządzanie dostępem do zasobów bazy danych.
- Logika: Klauzula
GRANTdefiniuje, co konkretnie użytkownik może robić (np. tylko czytać dane lub też je usuwać) i do jakiego obszaru ma dostęp (cała baza, jedna tabela lub konkretna kolumna).
| Zapis | Znaczenie |
|---|---|
ksiegarnia.ksiazki |
Tylko tabela ksiazki w bazie ksiegarnia |
ksiegarnia.* |
Wszystkie tabele w bazie ksiegarnia |
*.* |
Wszystkie tabele we wszystkich bazach |
Zadanie 3: Pełny przykład egzaminacyjny
- Cel: Realizacja pełnej procedury zarządzania dostępem.
- Kolejność: Najpierw tworzysz "tożsamość" (
CREATE USER), a następnie przypisujesz jej "możliwości" (GRANT). Pamiętaj: użytkownik bez uprawnień jest bezużyteczny, a uprawnienia bez użytkownika nie istnieją.
Treść zadania:
„Utwórz konto użytkownika Bartek na localhost z hasłem B@rtek2. Nadaj mu prawa jedynie do przeglądania i aktualizacji danych w tabeli klienci w bazie ksiegarnia."
Rozwiązanie:
Trzy najczęstsze błędy (kosztują punkty!)
- Brak apostrofów:
'Bartek'@'localhost'– oba człony w apostrofach! - Zapis
baza.tabela:ksiegarnia.klienci(nie'ksiegarnia'.'klienci', nieksiegarnia->klienci) - Mylenie przeglądania (
SELECT) z innymi prawami – czytaj treść zadania uważnie
materiały: link