En realidad, es típico tener una base de datos detrás de un firewall interno al que solo pueden acceder sus aplicaciones semi confiables y redes internas específicas.
No evita una violación, pero creo que entiendo lo que te gustaría lograr, y eso es restricción de acceso por lo que está accediendo a la base de datos.
Si almacenó sus contraseñas en su propio esquema (pass.passwords en lugar de dbo.passwords), podría restringir el acceso al esquema de paso a lo que desee.
Técnicamente, las aplicaciones no necesariamente necesitan acceder a las tablas donde se almacenan las contraseñas, pero sí necesitan las sales, que de todos modos no son un secreto. Para poder almacenar las sales en su tabla dbo.user, pero la contraseña real en la tabla pass.passwords.
Puede dar a sus aplicaciones acceso a procesos almacenados, uno de los cuales podría ser dbo.Authenticate(userId, hash)
, y restringir el acceso al esquema de paso a una red interna sin conexión y restringido a usuarios específicos.
Y no creo que la restricción de acceso se considere una ofuscación.