En primer lugar, no sé cómo los piratas informáticos consiguen una tabla de contraseñas completa y las roban. No sé si los dueños del sitio web son los culpables o qué, pero me pregunto si implica iniciar sesión en la base de datos o no.
Suponiendo que los piratas informáticos roban contraseñas iniciando sesión en la base de datos con usuarios de la aplicación o administradores, ¿qué hay de colocar contraseñas en su propio esquema con privilegios herméticos?
PASS.Passwords que tienen la contraseña con hash y la clave de usuario / primaria de UserId para la tabla de usuarios.
Los únicos permisos que cualquier usuario de base de datos tiene para PASAR el esquema serían los procedimientos de ejecución. Ni siquiera los administradores de DB habrían leído privs.
Authenticate by executing IsAuthenticated(@UserId, @HashedPassword) returns bit.
Create password by executing Create(@UserId, @HashedPassword) returns bit.
Update password by executing Update(@UserId, @OldHashedPassword, @NewHashedPassword) returns bit.
Y eso es todo lo que obtienes. Ningún usuario con permisos para leer incluso la contraseña con hash, ¿los hackers podrían robar la tabla incluso si comprometen el medio ambiente?