Ada tiga pendekatan yang dapat Anda ambil:
- Lakukan di dalam aplikasi
- Lakukan antara aplikasi dan db, di dalam proxy db
- Lakukan di dalam database
Opsi pertama tidak akan benar-benar memenuhi syarat sebagai kontrol akses tingkat baris karena logika aplikasi adalah yang bertanggung jawab untuk pemfilteran/penyembunyian. (Pemfilteran adalah kontrol akses tingkat baris sedangkan masking adalah tingkat sel).
Opsi kedua , menggunakan proxy, adalah pendekatan yang semakin banyak dilakukan. Ada solusi khusus seperti:
- GreenSQL
- Informatica DDM, dan
- Filter Akses Data Aksiomatik.
Solusi ini biasanya mencegat lalu lintas SQL dan memodifikasinya sehingga hanya data resmi yang dikembalikan. Ini disebut penyembunyian data dinamis . Ini dijelaskan lebih lanjut di Wikipedia .
Opsi ketiga adalah dengan menggunakan kemampuan asli database. Misalnya Oracle memiliki sesuatu yang disebut Virtual Private Database (VPD) yang memungkinkan Anda mengonfigurasi kemampuan pemfilteran baris tingkat lanjut.
Dalam kasus Anda (MySQL), ada sesuatu yang disebut kontrol akses berbutir halus (FGAC). Ada artikel bagus tentang topik di sini . Google istilah itu untuk sumber daya lainnya.