/ / Protegiendo mis archivos de base de datos - .net, sql-server, seguridad

Protegiendo mis archivos de base de datos - .net, sql-server, seguridad

Tengo una aplicación de Windows .net que utiliza SQL Server 2005 Express como base de datos, que se utiliza en un servidor con varios clientes. Los usuarios insertan, visualizan y actualizan datos a través de la aplicación.

Para esto, tengo que poner los archivos .mdf en una carpeta en el servidor. ¿Hay alguna otra manera?

Ahora, en este caso, cualquiera puede tomar esos archivos .mdf y abrirlos en su servidor SQL y ver los objetos de la base de datos, como tablas, vistas y procedimientos.

Por lo tanto, quiero proteger mis archivos .mdf con seguridad de alto nivel o máxima y garantizar que:

  1. Nadie puede copiar esos archivos desde el servidor.

  2. si los archivos se copian, entonces ellos mismos no deberían abrir,

  3. Si está abierto, entonces deben pedir contraseñas

Entonces, por favor, guíame cómo implementar esta seguridad?

Además, quiero saber cuándo alguien copia los archivos de la base de datos y luego si el usuario, los inicios de sesión y los roles también se copian o no.

Respuestas

1 para la respuesta № 1

También hemos investigado esto. En realidad, con SQL Express, alguien puede simplemente detener el servicio y copiar los archivos de la base de datos sin problemas. Estos se pueden trasladar a otra instancia.

La seguridad de Windows y otros productos, ya sea que utilice una política de grupo o alguna otra herramienta de mercado que pueda bloquear el sistema de archivos, son sus mejores opciones para la seguridad del sistema de archivos.

Creo que SQL ofrece exactamente lo que está buscando y eso es el cifrado TDE. Lamentablemente, esto solo está disponible en la edición Enterprise y la cantidad de personas que realmente ayudan.

También puedes cifrar columnas específicas directamenteen su base de datos Si tiene un determinado conjunto de tablas que le preocupa, esta es probablemente la mejor opción ofrecida con Express en el momento actual.

Echa un vistazo a este artículo de Dave Pinal: http://blog.sqlauthority.com/2009/04/28/sql-server-introduction-to-sql-server-encryption-and-symmetric-key-encryption-tutorial-with-script/

Lo he intentado y funciona bien para proteger sus datos confidenciales.


1 para la respuesta № 2

Creo que en SQL Server puede habilitar el cifrado y luego, si alguien obtiene su .mdf pero no tiene una credencial válida, no podrá ver los datos en él.


1 para la respuesta № 3

Es posible que desee pensar en utilizar unServidor de base de datos en lugar de solo un archivo de base de datos. El uso de un servidor le permitirá bloquear quién tiene acceso a la base de datos y hacer que solo su aplicación (a través de un nombre de usuario y contraseña) pueda acceder a ella.

Esto significaría usar SQL Server 2005 Express (creo que está limitado en el número de conexiones) o MySql Server.

Si eso realmente no es una opción entonces:

1) Tendría que asegurar la carpeta, pero esto podría significar que su aplicación no puede acceder también al mdf.

2 y 3) Ambos pueden ser complicados. Creo que hay algunas herramientas de terceros que pueden cifrar un archivo para usted, pero eso significará que tiene que cambiar su aplicación y la forma en que accede al archivo.

4) Podrías hacer un servicio personalizado que vigila.el directorio, pero no podrá saber si los aspectos internos del mdf están copiados o no. En general, si el mdf es una copia, probablemente esté seguro suponiendo que los roles, los inicios de sesión y los usuarios se copiaron con él.