Po wydaniu polecenia użytkownik Jacek będzie mógł
GRANT UPDATE, DELETE ON baza1.mojaTabela TO 'Jacek'@'localhost';
A. przeglądać dane w tabeli i wstawiać nowe dane.
Źle. Przeglądanie i wstawianie to SELECT i INSERT, których polecenie nie nadaje.
B. modyfikować i usuwać dane w tabeli.
Dobrze. UPDATE pozwala modyfikować dane, a DELETE usuwać wiersze.
C. zmieniać strukturę tabeli i dodawać kolumny.
Źle. Zmianę struktury tabeli umożliwia uprawnienie ALTER.
D. usuwać tabelę i tworzyć nową.
Źle. Usuwanie i tworzenie tabel wymaga praw DROP i CREATE, a DELETE usuwa tylko wiersze.
Jacek będzie mógł modyfikować i usuwać dane w tabeli mojaTabela.
GRANT nadaje uprawnienia: UPDATE pozwala zmieniać wartości w istniejących wierszach, a DELETE usuwać wiersze. Zapis baza1.mojaTabela ogranicza prawa do jednej tabeli w bazie baza1, a 'Jacek'@'localhost' oznacza konto łączące się z tego samego komputera. W praktyce prawo UPDATE z warunkiem WHERE wymaga także SELECT, bo serwer musi odczytać kolumny z warunku. Do zapamiętania: SELECT czyta, INSERT dodaje, UPDATE zmienia, DELETE usuwa wiersze, a DROP i CREATE dotyczą całych tabel. Prawa odbiera się poleceniem REVOKE z tą samą listą.Każdy z błędnych opisów przypisuje Jackowi uprawnienia, których polecenie nie zawiera. Usunięcie tabeli i utworzenie nowej wymagałoby praw
DROP i CREATE - DELETE usuwa wiersze, a nie całą tabelę, i to częsta pomyłka. Przeglądanie i wstawianie danych to SELECT i INSERT, nadane w bliźniaczym zadaniu, ale nie tutaj. Zmiana struktury tabeli, w tym dodawanie kolumn, wymaga uprawnienia ALTER. W poleceniu stoją wyłącznie UPDATE i DELETE, więc Jacek może zmieniać zawartość istniejących wierszy i usuwać wiersze w tabeli mojaTabela, a nic więcej. Nadane prawa sprawdzisz poleceniem SHOW GRANTS FOR 'Jacek'@'localhost';. Zasada najmniejszych uprawnień podpowiada, by nadawać kontu tylko te prawa, których naprawdę potrzebuje - dlatego polecenia często wymieniają je pojedynczo, zamiast nadawać ALL PRIVILEGES. Prawa do tabeli zawsze czytaj razem z jej nazwą po słowie ON.