Pregunta

Estoy usando seguridad integrada en una aplicación ASP.NET, el IIS y el servidor SQL están alojados en la misma máquina de servidor que ejecuta Windows Server 2008 R2.

¿Es posible permitir que los usuarios accedan a la aplicación de toda la red y han iniciado sesión en los usuarios, pero no le permiten acceder a la base de datos directamente o a través de SQL Server Management Studio?

Estoy tratando de salvaguardar el acceso a la base de datos porque mi solicitud se implementará en el servidor del cliente en las instalaciones del cliente.

Aquí está mi cadena de conexión que actualmente estoy usando

<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />

<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="MainAppConnectionString" providerName="System.Data.SqlClient" />

Estas son las dos cadenas de conexión que estoy usando actualmente, una es para la autenticación ASP.NET y la segunda es utilizada por mi solicitud.Estas ambas cadenas son iguales y de la misma base de datos.

¿Alguna sugerencia?

¿Fue útil?

Solución

No es posible 'asegurar' una base de datos que se ejecuta en las instalaciones del cliente.El personal del cliente puede obtener la contraseña de la cadena de conexión ASP.NET.Un administrador de dominio puede siempre obtener acceso a la base de datos (hay un artículo de MSDN real que describe el proceso: Conéctese a SQL Server cuando los administradores del sistema están bloqueados ).

Si desea ocultar la propiedad intelectual que tiene su base de datos, entonces su única solución es no implementar la base de datos en la premisa del cliente (use una base de datos alojada como SQL Azure, por ejemplo).

Si simplemente desea evitar que el cliente interfiera con la base de datos que puede estipularlo en el contrato.La auditoría y la detección de interferencias es posible.

Otros consejos

Sí, eso es completamente posible.Una persona que inició sesión en ASP.NET utilizando seguridad integrada no puede iniciar sesión en SQL Server con las mismas credenciales.Ambos están completamente desconectados.Solo es posible si se ha establecido el servidor SQL para permitirles acceder.

Mi consejo sería crear ingresos y usuarios de SQL, y solo darles acceso a SQL Server.En su solicitud, cuando cree la cadena de conexión, no configure la seguridad integrada en verdadero, y simplemente permita que el usuario ingrese su nombre de usuario y contraseña de SQL para acceder a la base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top