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.Źle.
CREATE tworzy obiekty bazy (tabele, widoki, bazy), a nie przydziela praw dostępu.Źle.
REVOKE działa odwrotnie niż GRANT - ODBIERA uprawnienia, zamiast je nadawać.Dobrze.
GRANT przydziela użytkownikowi prawa do operacji na tabeli, np. odczytu czy zapisu danych.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.