Polecenie SQL
GRANT SELECT ON nazwa1 TO nazwa2;pozwala na
REVOKE ... FROM. GRANT zawsze nadaje prawa.DROP USER. GRANT zmienia tylko uprawnienia istniejącego użytkownika.GRANT SELECT daje użytkownikowi nazwa2 prawo odczytu danych z tabeli nazwa1.GRANT ALL. Tutaj nadano tylko SELECT, czyli odczyt.GRANT nadaje uprawnienia. Schemat polecenia to: GRANT uprawnienie ON obiekt TO użytkownik;. Tutaj uprawnieniem jest SELECT, czyli odczyt danych, obiektem tabela nazwa1, a odbiorcą użytkownik nazwa2. Po wykonaniu nazwa2 może pobierać dane z nazwa1 zapytaniami SELECT, ale nie może ich zmieniać ani usuwać.
Uprawnienia łączy się przecinkami, np. GRANT SELECT, INSERT, UPDATE ON sklep.klienci TO 'anna'@'localhost';. Zapis sklep.* obejmuje wszystkie tabele bazy. Odwrotnością jest REVOKE SELECT ON nazwa1 FROM nazwa2;, które odbiera prawo. Zasada najmniejszych uprawnień mówi: dawaj tylko to, co jest potrzebne do pracy.
Nadane prawa sprawdzisz poleceniem SHOW GRANTS FOR nazwa2;.
Błędne odpowiedzi łatwo wybrać, jeśli myli się kierunek polecenia albo jego zakres. Odbieranie uprawnień to zadanie REVOKE, które ma budowę lustrzaną: zamiast TO używa słowa FROM. GRANT zawsze dodaje prawa.
Usunięcie konta wykonuje DROP USER nazwa2;. GRANT w ogóle nie dotyka istnienia konta, zmienia tylko jego uprawnienia.
Wszystkie uprawnienia nadaje się jawnie słowami ALL PRIVILEGES albo ALL: GRANT ALL ON nazwa1 TO nazwa2;. W tym poleceniu stoi wyłącznie SELECT, więc użytkownik dostaje tylko odczyt. Próba wykonania INSERT czy DELETE na nazwa1 zakończy się błędem braku uprawnień.
Zapamiętaj parę słów kluczowych: GRANT ... TO daje komuś prawa, REVOKE ... FROM zabiera je komuś. Słowo po nazwie obiektu od razu mówi, które polecenie widzisz. Uprawnienia nie znikają też przy zmianie hasła, bo hasło i prawa to osobne ustawienia konta. Kto ma odczyt, nie może jeszcze modyfikować danych.