¿como proteger BD con usuario y clave?

Iniciado por Filantropo, 21 Marzo 2020, 07:07 AM

0 Miembros y 1 Visitante están viendo este tema.

Filantropo

Salu2.
Estoy en desarrollo de una aplicacion de vb.net y su BD en microsoft sql server, necesito que a la BD solo puedan acceder quienes tengan un usuario y clave asignado, gugleando halle ejemplos de login que se basan en crear una tabla adicinal que contenga los usuarios y sus claves, y la aplicacion lo que hace es buscar ese usuario y clave, si existe muestra datos sino muestra error "clave/usuario incorrectos"

select * from users where user='paco' and pass='123456'

Pero este metodo es muy inseguro, algun curioso con conocimientos en sql podria ver la BD completa sin usar mi aplicacion .net, simplemente abriendo una consola o el managment.
¿que otro metodo podria usar?
La BD guardara datos sensibles.

engel lex

primero que nada usuarios en una tabla de la DB es el metodo normal y correcto... si no te funciona usualmente implica que tu metodología es erronea desde el inicio (a menos que estés aplicando algun caso muy especializado)

la base de datos debe estar almacenada en un lugar seguro tal que no sea revisable como tu dices... en esos casos la haces web y si es necesario mas, usas una api intermedia para su acceso tal que solo se permitan acciones previamente validadas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Filantropo

Funciona pero es inseguro, la pc donde se instalara la app la usan 3 personas pero solo una debe acceder a la BD sqlserver, la forma usual de acceder y manipular la BD es atraves de la app que la desarrolle en vb.net, en la que un formulario se pide ingresar un nombre y clave, esta se conecta a la BD y dentro busca una tabla tbUsuarios y compara si el nombre y clave  existen dentro de esa tabla, si es asi muestra la ventana principal desde la cual se acceden a otros modulos.
Pero esta falsa seguridad no impide que las otras personas abran el sql managment(cosa que hago cuando debo ver o modificar algun campo) y dentro busquen y puedan ver todo el contenido de la BD de esa forma cualquier listo podria saltarse la "seguridad" de la app, porque basta con saber el user y password del sql (que no es el mismo que esta en la tabla) y accede a todas las bds.
Habra manera de asignarle una clave a cada bd y que lo pida cada vez que se abra?
Lo de esconder la bd en alguna carpeta no me parece sea tan seguro.
O de que manera se tendria que implementar? Algun enlace

engel lex

sinceramente no soy experto en mssql, pero debes poder asignarle incluso multiples usuarios a cada db sin problema... el asunto es que aun así si alguien sabe, podría hacerle analisis a la DB y extraer los datos...

la DB debe ubicarse siempre en un lugar seguro, si no siempre es tendiente al analisis o alteracion (sin contar que siempre alguien podría buscar el archivo y eliminarlo sin mas)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.