Rejestrowanie użytkowników
Podczas tych zajęć poznamy polecenia służące do tworzenia nowych użytkowników i nadawania jak również odbierania im uprawnień.
Ćwiczenie 3_3_0_1. Nadawanie hasła użytkownikowi root
Zanim zarejestrujemy użytkowników powinniśmy nadać hasło użytkownikowi root
. Uczynimy to, w następujący sposób:
- Za pomocą Notepad++, otwórz plik xampp\phpMyAdmin\config.inc.php.
-
Wpisz hasło
admin123
w wierszu kodu PHP -$cfg['Servers'][$i]['password'] = 'admin123';
, a następnie zapisz zmiany: -
Nie otwierając żadnej z baz (dla pewności kliknij napis phpMyAdmin), wpisz w zakładce SQL polecenie:
SET PASSWORD FOR 'root'@'localhost'= PASSWORD('admin123');
, a następnie kliknij Wykonaj. Fakt ustanowienia hasła powinien pokazać phpMyAdmin: -
Ponownie za pomocą Notepad++, otwórz plik xampp\phpMyAdmin\config.inc.php, wpisz zamiast
config
-cookie
oraz usuń wpisane wcześniej hasłoadmin123
: -
Od tej pory uruchomienie panelu administracyjnego będzie wymagało wpisanie użytkownika
root
oraz hasłaadmin123
:
Polecenie GRANT - rejestrowanie nowego użytkownika
Polecenie GRANT
służy do tworzenia nowych użytkowników i nadawania im uprawnień. Posiada następującą składnię:
GRANT przywileje [kolumny]
ON obiekt
TO identyfikator_uzytkownika [IDENTIFIED BY 'haslo']
[REQUIRE opcje_ssl]
[WITH [GRANT OPTION | ograniczenia]];
Należy w tym miejscu zaznaczyć, że klauzule pisane w nawiasach kwadratowych mają charakter opcjonalny, tzn. mogą być, ale nie muszą. Poszczególne paramety (pisane kursywą) mają następujące znaczenie:
- Parametr
przywileje
- lista uprawnień, oddzielonych przecinkami. - Parametr
kolumny
- parametr opcjonalny, można podać nazwę pojedynczej kolumny lub listę nazw oddzielonych przecinkami, do których zostaną zastosowane podane uprawnienia. - Parametr
obiekt
wskazuje bazę lub tabelę, do której zastosowane zostaną podane uprawnienia. Jeżeli chcemy nadać dane uprawnienia we wszystkich bazach, to parametrobiekt
powinien przyjąć wartość*.*
. Wtedy dane uprawnienia nadajemy na poziomie globalnym. Jeżeli nie jest używana żadna baza danych, to stosujemy wartość*
.
Najczęściej, wskazuje się konkretną bazę oraz:- wszystkie tabele w bazie -
nazwa_bazy.*
, - dana tabela w bazie -
nazwa_bazy.nazwa_tabeli
, - pojedyncze kolumny w danej tabeli -
nazwa_bazy.nazwa_tabeli
oraz nadanie odpowiedniej wartości parametrowikolumny
.
- wszystkie tabele w bazie -
- Parametr
identyfikator_uzytkownika
powinien wskazywać identyfikator, za pomocą którego, użytkownik loguje się do serwera MySQL. - Parametr
haslo
- hasło dostępu podawane podczas logowania do serwera. - Klauzula
REQUIRE
wskazuje, że użytkownik musi się łączyć poprzez protokół SSL (Secure Sockets Layer), a także wskazać opcje SSL. - Dodanie opcji
WITH GRANT OPTION
spowoduje, że wskazany użytkownik będzie mógł nadawać innym użytkownikom, takie uprawnienia, jakie sam posiada.
Informacje o uprawnieniach, zapisywane są w czterech tabelach systemowej bazy mysql
. Tabele te mają nazwy: mysql.user
, mysql.db
, mysql.host
, mysql.tables_priv
oraz mysql.columns_priv
. Można zmienić dane wprost w tych tabelach, bez stosowania polecenia GRANT
.
Polecenie REVOKE - odbieranie użytkownikowi uprawnień
Polecenie REVOKE
służy do odbierania użytkownikom określonych uprawnień. Posiada następującą składnię:
REVOKE przywileje [kolumny]
ON obiekt
FROM indentyfikator_uzytkownika;
Ćwiczenie 3_3_0_2. Rejestrowanie użytkownika mającego status administratora
Po otwarciu phpMyAdmina - zakładka SQL, otwieramy bazę ksiegarnia_internetowa
, wpisujemy poniższe polecenie SQL i klikamy Wykonaj.
GRANT ALL
ON *
TO uczen_admin IDENTIFIED BY 'uczen_admin_123';
W wyniku tego polecenia, zostanie zarejestrowany użytkownik o nazwie uczen_admin
, zostanie zapisane jego hasło uczen_admin_123
oraz zostaną mu nadane wszystkie uprawnienia w zakresie wszystkich istniejących baz danych.
Sprawdzamy na zakładce Uprawnienia czy użytkownik uczen_admin
, został zarejestrowany:
Ćwiczenie 3_3_0_3. Odbieranie użytkownikowi wszystkich uprawnień
Jak odebrać wszystkie uprawnienia nadane w poprzednim ćwiczeniu? Należy zastosować plecenie SQL:
REVOKE ALL
ON *
FROM uczen_admin;
USAGE
zakreślone na rysunku kolorem czerwonym oznacza brak uprawnień danego użytkownika.
W celu sprawdzenia czy nasz użytkownik, nadal istnieje, możemy otworzyć systemową bazę mysql
- klikając myszką nazwę na liście baz po lewej okna phpMyAdmina, a następnie zastosować polecenie SELECT * FROM user;
Zwróć uwagę, że hasła przechowywane są w postaci zaszyfrowanej.
Ćwiczenie 3_3_0_4. Usuwanie użytkownika z systemu
Pora usunąć naszego testowego użytkownika uczen_admin
. Jak to wykonać? Kliknąć zakładkę SQL, wpisać polecenie DELETE FROM user WHERE USER='uczen_admin';
i kliknąć Wykonaj. Po ponownym zastosowaniu SELECT * FROM user;
widzimy, że nasz testowy użytkownik uczen_admin
został usunięty z tabeli user
.
Otwórz bazę ksiegarnia_internetowa
i sprawdź na zakładce Użytkownicy, czy nadal istnieje tam uczen_admin
. Jeżeli tak, to usuń go ręcznie - zaznacz go na liście, a następnie w polu Usuń zaznaczonych użytkowników kliknij Wykonaj.
Ćwiczenie 3_3_0_5. Rejestrowanie użytkownika bazy księgarnia_internetowa
Pora zająć się naszą bazą ksiegarnia_internetowa
, klient
będzie użytkownikiem tej bazy.
Zarejestrowanie nowego użytkownika bez uprawnień. Otwórz bazę ksiegarnia_internetowa
i zastosuj następujące polecenie SQL:
GRANT USAGE
ON ksiegarnia_internetowa.*
TO klient IDENTIFIED BY 'klient123';
W wyniku tego polecenia, zostanie zarejestrowany użytkownik bez przywilejów, bazy ksiegarnia_internetowa
, identyfikowany jako klient
, z hasłem klient123
.
Sprawdzamy na zakładce Uprawnienia czy użytkownik klient
, został zarejestrowany. Co widzimy? nie ma tam naszego klienta
, ponieważ nie ma uprawnień. Sprawdźmy więc, czy jest on wyszczególniony w tabeli user
systemowej bazy mysql
. Tak, tutaj znajdziemy go na ostatniej pozycji:
Nadanie uprawnień zarejestrowanemu użytkownikowi klient
. Ponownie otwórz bazę ksiegarnia_internetowa
i zastosuj następujące polecenie SQL:
GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, DROP
ON ksiegarnia_internetowa.*
TO klient;
Teraz, nie ma już potrzeby podawania hasła użytkownika klient
. Lista uprawnień znajduje się po słowie kluczowym GRANT
. Będą one obowiązywać we wszystkich tabelach bazy ksiegarnia_internetowa
.
Sprawdź na zakładce Uprawnienia, uprawnienia użytkownika klient
.
Ograniczenie uprawnień użytkownika klient
. Administrator, może zawsze ograniczyć uprawnienia użytkowników. Wykonaj to, stosując następujące polecenie:
REVOKE ALTER, CREATE, DROP
ON ksiegarnia_internetowa.*
FROM klient;
Sprawdź na zakładce Uprawnienia, jakie teraz uprawnienia posiada użytkownik klient
. Lista uprawnień zmniejszyła się o uprawnienia wymienione po słowie kluczowym REVOKE
.
Odebranie użytkownikowi klient
wszystkich uprawnień. W tym celu zastosuj następujący kod SQL:
REVOKE ALL
ON ksiegarnia_internetowa.*
FROM klient;
Sprawdź na zakładce Uprawnienia, czy znajduje się tam użytkownik klient
. Nie posiada on żadnych uprawnień, więc nie powinien znajdować się na tej zakładce.