Su solución solo funcionaría en un conjunto muy estrecho de circunstancias. Es raro que el usuario de la base de datos y la persona que ve su sitio web tengan exactamente el mismo conjunto de permisos, que es el escenario que está imaginando.
Imagina este escenario:
seleccione passwordhash from usernamePasswordtable donde username = $ username;
Incluso si pudiera limitar esto a un usuario de base de datos que SOLO realiza inicios de sesión Y Y su base de datos permite limitar el acceso al nivel de la fila (generalmente no he visto esto), todavía tiene que abrir el acceso al usuario de inicio de sesión a todos los usuarios activos en la tabla usernamePassword. Un ataque de inyección SQL podría permitir fácilmente que un atacante inicie sesión como un usuario diferente, dado que podría poner lo que quiera en $ username.
También hay varios otros problemas, el menor de los cuales es tener que tener un usuario de base de datos para todos y cada uno de los usuarios de su sitio web.
El único escenario en el que esto podría funcionar es si su sitio web es totalmente público y todo en su base de datos ya está publicado en su sitio web. Entonces la ejecución de solo lectura podría funcionar.