Di sebagian besar aplikasi web, model keamanan Anda ditentukan pada lapisan logika bisnis, bukan lapisan data.
Misalnya, kemampuan saya untuk mengedit posting di Stack Overflow tidak dikendalikan oleh kemampuan saya untuk membaca/menulis ke tabel "postingan" - pada kenyataannya, Anda mungkin bahkan tidak dapat mendesain skema database yang memungkinkan Anda untuk mengimplementasikan tingkat database keamanan pada tingkat ini. Sebagai gantinya, ada lapisan logika bisnis yang membandingkan hak istimewa saya dengan tindakan yang saya coba lakukan (saya berasumsi); keamanan diimplementasikan pada lapisan logika bisnis.
Terus terang saya hampir tidak melihat manfaat untuk melewati kredensial ke lapisan basis data - jika entah bagaimana saya melewati logika bisnis untuk mengontrol siapa yang dapat mengedit posting SO, kontrol "baca/tulis" basis data tidak akan mencegahnya, dan audit tidak akan' sangat membantu Anda.
Saya melihat BANYAK kelemahan - paling tidak fakta bahwa Anda akan membagi logika otorisasi Anda menjadi dua (logika bisnis dan basis data), dan memperkenalkan semua jenis mode kegagalan yang menghibur dengan menyinkronkan akun di seluruh lapisan logika bisnis dan lapisan basis data (pengguna mengubah kata sandi, atau meninggalkan situs web). Saya tidak dapat membayangkan bagaimana Anda menguji dan men-debug semua ini dengan waras - apa yang terjadi jika pengguna akhir mendapatkan kesalahan terkait dengan hak istimewa basis data mereka?