usar una que permiten obtener leer las encrypt elementos cómo crear connectionstring conexión conexion clases cadenas cadena aspx archivo app connection-string database-connection

connection string - una - ¿Cuál es la mejor manera de centralizar y asegurar las cadenas de conexión?



obtener connectionstring web config (3)

La compañía para la que trabajo ha utilizado una situación similar a través de una base de datos de SQL Server. Terminamos creando un .ll dll compatible con COM para simplificar y asegurar la API en la base de datos y para garantizar que se utiliza la misma lógica entre los clásicos paquetes asp, .Net y DTS. Nos ha funcionado muy bien durante todo el año y aunque hay algunos elementos de refactorización que a muchos de nosotros nos gustaría hacer, ha sido genial abordar problemas como migraciones de servidores o cambios de nombre.

Creo que estás en el camino correcto; Sin embargo, recomendaría los siguientes cambios:

  • Intenta moverte a un verdadero servidor de base de datos. El acceso es excelente para MS Office pero no para algo de esta escala.
  • Cree una consola administrativa que permita auditar quién está agregando y editando información (asegure quién tiene acceso a qué configuraciones también).
  • Cree una DLL compatible con COM para que otros sistemas la puedan consumir de manera segura y consistente.

EDITAR:

Algo que he notado después de trabajar años en un sistema como este es que ata ligeramente sus manos en algunas soluciones. Muchas herramientas disponibles (es decir, nHibernate, Elmah, etc. en el mundo de .Net) son realmente limitadas cuando la cadena de conexión ya no está en los archivos de configuración. Muchos se pueden modificar fácilmente para usar su API; sin embargo, es algo que lleva más tiempo investigar si desea usarlo. Solo un FYI sobre eso.

¿Cuál es la mejor manera de centralizar y asegurar las cadenas de conexiones utilizadas por las aplicaciones? En mi entorno tenemos muchas aplicaciones internas. Cada aplicación requiere una o más cadenas de conexión para acceder a la base de datos. Tenemos el objetivo de centralizar todas estas cadenas de conexión (particularmente los inicios de sesión de SQL y las contraseñas) para poder cambiar las contraseñas en un solo lugar en lugar de en 35 archivos .config diferentes, entradas de registro, etc.

Actualmente estamos usando un componente de producción propia que extrae la información de la cadena de conexión de una base de datos de acceso, esto cubre el requisito de centralización pero no es particularmente seguro. Además, tenemos aplicaciones escritas en lenguajes de asp clásico, vb6, delphi, c ++, .net, por lo que la solución necesitaría ser utilizada por todas esas aplicaciones.

¿Alguien tiene una idea de cómo hacer esto mejor, o tenemos que volver a trabajar todo nuestro enfoque sobre la forma en que nuestras aplicaciones acceden a la base de datos?


Puede usar el servidor de Windows para crear usuarios a los que se les permita acceder a su base de datos de SQL Server. Luego puede usar el inicio de sesión de Windows integrado en las cadenas de conexión.

Por cierto, almacenar contraseñas en MDB público las hace irrelevantes. Lo mismo que ellos no existen.


Si no es posible pasar a Seguridad integrada de ventana en las cadenas de conexión, entonces no tiene que preocuparse tanto por el aspecto de seguridad (a menos que necesite asegurar la ubicación real de la conexión, supongo).