2008-10-19 17 views
8

Planeo utilizar las funciones de la aplicación MS SQL Server 2005 en mi aplicación. Comenzaré el rol ejecutando el sp_setapprole y terminaré ejecutando los SP sp_unsetapprole. La aplicación se implementa en ASP.NET.Rol de la aplicación SQL Server, rendimiento alcanzado

He leído que "la agrupación de conexiones no funciona" con la agrupación de aplicaciones y no hay forma de reaccionar en el evento de desconexión de conexión (ejecute sp_unsetapprole justo antes de la desconexión).

Planeo llamar al sp_setapprole al inicio de todos mis SP y llamar al sp_unsetapprole al final de todos mis SP.

¿Ha utilizado funciones de aplicación SQL? ¿Cuáles son tus XPs? ¿Qué pasa con el rendimiento alcanzado?

Respuesta

-1

No he usado roles de aplicaciones anteriormente, pero por lo que sé sobre el golpe de perforación es que después de configurar el rol de la aplicación no hay forma de volver al anterior. contexto de seguridad. Por lo tanto, la conexión no se puede reutilizar en la agrupación. Esto solo es un gran rendimiento. éxito que te obliga a pensar dos veces antes de usar los roles de la aplicación.

Sin embargo, los documentos dicen que a partir de SQL Server 2005 hay una forma de recordar el contexto de seguridad original en un tipo de cookie devuelta por sp_setapprole y luego utilizar sp_unsetapprole para volver a ella. Entonces el agrupamiento debería funcionar nuevamente. Si yo fuera tú, compararía la perf. con un par de declaraciones simples/sprocs.

¿Alguna razón por la que no utiliza la API de membresía ASP.NET estándar en el nivel de la aplicación en lugar de las funciones de la aplicación?

+0

Uso la API de membresía ASP.NET. El rol de la aplicación SQL sería una capa de seguridad adicional. – artur02

+0

Tuve que rechazar esta respuesta porque la pregunta es claramente para aquellos que tienen experiencia en el uso de roles de aplicaciones. Además, el primer párrafo confunde innecesariamente al lector. El problema de los grupos de aplicaciones se ha resuelto desde SQL Server 2005. Consulte http://blogs.solidq.com/dsarka/Post.aspx?ID=54&title=application+roles+and+connection+pooling – zumalifeguard

0

He rodado mi propio "aprobado" en el pasado, no es demasiado difícil. Cree una función de base de datos para cada tipo de usuario (gerente, casher, empleado, lo que sea). Cree un usuario de base de datos con el nombre del grupo (manager_user, casher_user, clerk_user, etc.). Cree cuentas para sus usuarios reales y póngalos en los roles de la base de datos. Valide a sus usuarios asp.net registrándolos en la base de datos (abra & cierre una conexión), una tabla de búsqueda o mejor si usa la autenticación de Windows y acaba de obtener su nombre de usuario de IIS. Verifique su membresía en una función de base de datos, pero inicie sesión en la base de datos utilizando role_user. Puede proteger los objetos de la base de datos a través de role_user, los usuarios no inician sesión y no tienen acceso a ningún objeto SQL y usted obtiene la agrupación de conexiones.

+1

Los rollos de atún picante también son muy útiles. bueno. ;) –

+0

¡Doh! Odio cuando hago eso. –

+0

Lo siento, pero tuve que votar este artículo. Esto no está respondiendo la pregunta. Más bien está proponiendo una alternativa. La pregunta específicamente es pedir respuestas de aquellos que han usado roles de aplicaciones. Si no lo has hecho, entonces no puedes responder la pregunta, así que no pierdas el tiempo de otras personas. Gracias. – zumalifeguard

Cuestiones relacionadas