Można zastosować trzy podejścia:
- Zrób to w aplikacji
- Zrób to między aplikacją a bazą danych, wewnątrz serwera proxy bazy danych
- Zrób to w bazie danych
Pierwsza opcja tak naprawdę nie kwalifikuje się jako kontrola dostępu na poziomie wiersza, ponieważ logika aplikacji jest odpowiedzialna za filtrowanie/maskowanie. (Filtrowanie to kontrola dostępu na poziomie wiersza, podczas gdy maskowanie jest na poziomie komórki).
Druga opcja , przy użyciu proxy, to podejście, które jest coraz częściej stosowane. Istnieją dedykowane rozwiązania, takie jak:
- GreenSQL
- Informatica DDM i
- Filtr dostępu do danych Aksjomatyki.
Rozwiązania te zazwyczaj przechwytują ruch SQL i modyfikują go w taki sposób, że zwracane są tylko autoryzowane dane. Nazywa się to dynamicznym maskowaniem danych . Wyjaśniono to nieco więcej w Wikipedii .
Trzecia opcja jest wykorzystanie natywnych możliwości bazy danych. Na przykład Oracle ma coś, co nazywa się wirtualną prywatną bazą danych (VPD), która pozwala skonfigurować zaawansowane możliwości filtrowania wierszy.
W twoim przypadku (MySQL) istnieje coś, co nazywa się drobnoziarnistą kontrolą dostępu (FGAC). Świetny artykuł na ten temat znajduje się tutaj . Wygoogluj ten termin, aby uzyskać więcej zasobów.