POWRÓT NA STRONĘ SZKOŁY

System uprawnień

Jednym z założeń baz danych, jest możliwość obsługiwania wielu użytkowników. Po pierwszym uruchomienia serwera, jedynym zarejestrowanym użytkownikiem jest root. Root (ang. korzeń), to tradycyjna nazwa uniksowego konta, które ma pełną kontrolę nad systemem. To konto, powinno być wykorzystywane tylko do celów administracyjnych. Dla każdego użytkownika MySQL, należy utworzyć konto i nadać mu hasło dostępu. Co prawda nadawanie haseł nie jest obowiązkowe, jednak ze względów bezpieczeństwa jest nieodzowne.

MySQL posiada system uprawnień (przywilejów), dzięki któremu każdy użytkownik może wykonywać tylko te operacje, na które mu zezwolił administrator. Podczas rejestracji nowego użytkownika, administrator wyszczególnia czynności, które będzie on mógł wykonywać. Obowiązuje przy tym zasada najmniejszego przywileju - użytkownik powinien dysponować minimalnym zasobem uprawanień, tylko takich, które są niezbędne do wykonywania powierzonych mu zadań.

Poziomy uprawnień

W MySQL rozróżniamy natępujące poziomy uprawnień:

  • globalny - przyznane uprawnienia obowiązują we wszystkich istniejących bazach,
  • baza danych - uprawnienia w zakresie danej bazy danych,
  • tabela - w zakresie danej tabeli,
  • kolumna - w zakresie danej kolumny danej tabeli.

Typy uprawnień

MySQL wykorzystuje następujące typy uprawnień:

  • uprawnienia nadawane użytkownikom,
  • uprawnienia administratorów,
  • uprawnienia specjalne.

Nikomu, z wyjątkiem administratora, nie należy udostępniać systemowej bazy mysql, ponieważ są tam przechowywane identyfikatory oraz hasła wszystkich użytkowników. Uprawnienia użytkowników są związane z konkretnymi poleceniami SQL, które będziemy stopniowo poznawać w dalszym toku nauki. Nie zapamiętuj pokazanych zestawień, tylko przeanalizuj je.

Tabela 3_2_0_1. Uprawnienia użytkowników
Uprawnienie Poziom Opis
SELECT Tabele, kolumny Pozwala wyszukiwać rekordy w tabelach
INSERT Tabele, kolumny Pozwala wstawiać nowe wiersze w tabelach
UPDATE Tabele, kolumny Pozwala zmieniać wartości zapisane w tabeli
DELETE Tabele Pozwala usuwać wiersze z tabeli
INDEX Tabele Pozwala tworzyć i usuwać indeksy w tabelach
ALTER Tabele Pozwala zmieniać strukturę istniejących tabel, np. dodawanie kolumn, zmiany nazw kolumn i tabel, zmiany typów danych w kolumnach
CREATE Bazy danych, tabele Pozwala tworzyć nowe tabele i bazy danych
DROP Bazy danych, tabele Pozwala usuwać bazy lub tabele
Tabela 3_2_0_2. Uprawnienia administratorów
Uprawnienie Opis
CRETE TEMPORARY TABLES Pozwala administratorowi używać słowo kluczowe TEMPORARY w instrukcji CREATE TABLE
FILE Pozwala wczytywać dane z plików do tabel i odwrotnie
LOCK TABLES Pozwala jawnie używać instrukcji LOCK TABLES
PROCESS Pozwala śledzić procesy wykonywane przez serwer i je przerywać
RELOAD Pozwala powtórnie załadować tabele zwierające informacje na temat praw dostępu oraz na odświeżenie przywilejów, listy nazw łączących się komputerów, dziennika zdarzeń i tabel
REPLICATION CLIENT Pozwala używać instrukcję SHOW STATUS na nadawcach i odbiorcach replikacji
REPLICATION SLAVE Pozwala serwerom będącym odbiorcami replikacji łączyć się z serwerem nadawcą.
SHOW DATABASES Pozwala odczytywać listę wszystkich baz danych przy użyciu instrukcji SHOW DATABASES. Użytkownicy, którzy nie mają tego uprawnienia, mogą zobaczyć tylko bazy, do których przydzielono im dostęp
SHUTDOWN Pozwala zakończyć pracę serwera MySQL
SUPER Pozwala zabijać wątki, należące do dowolnego użytkownika
Tabela 3_2_0_3. Przywileje specjalne
Uprawnienie Opis
ALL Nadaje wszystkie uprawnienia opisane w poprzednich tabelach
USAGE Nie nadaje żadnych uprawnień. Powoduje zarejestrowanie użytkownika i pozwala mu na zalogowanie się, lecz jakiekolwiek czynności są dla niego niedostępne. Odpowiednie przywileje są w takiej sytuacji nadawane później

Użytkownik root posiada wszystkie uprawnienia:

Uprawnienia użytkownika root
Rysunek 3_2_0_1. Uprawnienia użytkownika root

Pokazane uprawnienia będziemy stosować w konkretnych przykładach, podczas kolejnych zajęć.