
Mój problem jest następujący:
Jeden z użytkowników bazy danych ma odebrane uprawnienia do jednej z tabelek (nazwijmy ja a).
Jej zawartość może przeglądać jedynie poprzez widok (a_view), który ogranicza mu liczbę rekordów (pewnych z nich nie powinien widzieć).
Chciałbym aby mógł on dodawać do tej tabelki nowe rekordy, edytować te, które dodał oraz je usuwać.
Na początek dałem mu GRANT na INSERT, UPDATE i DELETE. INSERT działa bez problemu. Za to problem jest z DELETE (i analogiczny z UPDATE).
Wg. Dokumentacji MySQL dotyczącej uprawnień do SELECT:
For example, SELECT is needed for columns referenced on the right hand side of col_name=expr assignment in UPDATE statements or for columns named in the WHERE clause of DELETE or UPDATE statements.
Zatem by mój użytkownik mógł wykasować swój rekord z tabeli (delete from a where nazwa_kol=costam) musi mieć uprawnienia do SELECT czego nie mogę mu dać.
Czy da się to jakoś obejść?
Problem już rozwiązałem sam.
Wystarczyło dać użytkownikowi GRANT SELECT na kolumnę z id.