Aby nadać użytkownikowi uprawnienia do tabel w bazie danych, należy zastosować polecenie:
Źle.
SELECT pobiera dane z tabel - z nadawaniem uprawnień nie ma nic wspólnego.Dobrze.
GRANT przydziela użytkownikowi prawa do operacji na tabeli, np. odczytu czy zapisu danych.Źle.
REVOKE działa odwrotnie niż GRANT - ODBIERA uprawnienia, zamiast je nadawać.Źle.
CREATE tworzy obiekty bazy (tabele, widoki, bazy), a nie przydziela praw dostępu.Uprawnienia do tabel nadaje się poleceniem
GRANT. Należy ono do języka kontroli danych DCL, który decyduje, kto i co może robić w bazie. Budowa polecenia jest czytelna: po GRANT wymieniasz rodzaje uprawnień, po ON wskazujesz tabelę, a po TO - użytkownika, na przykład GRANT SELECT, INSERT ON klienci TO jan. Dzięki temu administrator precyzyjnie ustala, kto ma dostęp do danych i jakie operacje może na nich wykonać. Poleceniem odwrotnym, które cofa przyznane prawa, jest REVOKE.Pułapka polega na tym, że każda z tych komend naprawdę istnieje w SQL, tylko odpowiada za coś innego niż uprawnienia.
SELECT pobiera dane z tabel - to najczęstsze polecenie zapytań, ale niczego nie nadaje ani nie ogranicza. CREATE pochodzi z języka DDL i tworzy obiekty bazy: tabele, widoki czy całe bazy danych - też bez związku z dostępem użytkowników. Najbliżej tematu jest REVOKE, bo również dotyczy uprawnień, ale robi dokładnie odwrotność: ODBIERA wcześniej przyznane prawa. Samo nadawanie uprawnień to wyłącznie zadanie polecenia GRANT z grupy DCL.