Pregunta

Todavía estoy tratando de conseguir mi cabeza alrededor de LINQ y el acceso a una Base de datos SQL.

Siempre se me enseñó que sólo debe tener permisos de ejecución de los procedimientos almacenados sus datos.

Usted nunca debe tener select / insert / update / delete.

(Esto es debido a que el rendimiento y la seguridad)

Para obtener los datos de LINQ obviamente, se necesita seleccionar los permisos.Sé que usted puede utilizar procedimientos almacenados con LINQ, pero ya no puedo hacer se une a ¿cuál es el punto?

He perdido algo???

¿Fue útil?

Solución

1) Nosotros somos programadores, no DBA fascistas.Si el estado de los requisitos que la base de datos debe ser bloqueado al 100%, Linq no es para usted.Yo no soy un DBA, por lo que creo que la mayoría de prestaciones/seguridad bombo es sólo eso.Linq es para mí.

2) puedes hacer combinaciones con linq.

@Philippe:Linq transforma automáticamente las evaluaciones de los parámetros de la consulta, por lo que proporciona cierta protección contra la inyección sql.Sin embargo, usted todavía tiene que evaluar detenidamente sus necesidades para determinar cuánto de la seguridad que usted necesita y en qué niveles.Linq hace que el trato con la base de datos mucho más fácil, pero hace que sea más fácil de poner secuirty diseño en la parte posterior del quemador, lo cual es una mala cosa.

Otros consejos

Bien, por razones de seguridad no se debe ingresar el usuario ingresa los datos en las consultas.Si usted se pega con esta regla, no veo el problema de tener el permiso select.

Si todos los de su base de datos de acceso está "detrás" de los procedimientos almacenados depende de las necesidades de la aplicación y de la empresa.Me han implementado sistemas que utilizan vistas a obtener todos los datos y procedimientos almacenados para todas las actualizaciones.Esto permite centralizada de la seguridad de base de datos y la lógica sin dejar de front-end a los desarrolladores utilizar consultas SQL donde corresponda.

Como tantas otras cosas en la programación depende de las necesidades de su proyecto.

LinqToSql soporta procedimientos almacenados.Scott Gu tiene un post sobre ella:

http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx

Estoy muy de acuerdo con Jeff Atwood en los "Procedimientos Almacenados vsEn línea de SQL y LINQ" problema: Que Las Necesidades De Los Procedimientos Almacenados, De Todos Modos?.

Estoy confundido en cuanto a por qué si quiero realizar una combinación, si usted está en el SPROCs-para-todo público;no debe de envolver que se UNEN en otro procedimiento almacenado?

Como Se dijo, LINQ no fue diseñado para el tipo de DB uso que estamos hablando;fue diseñado para darnos estáticamente tipado en línea de SQL.Sin embargo, puede todavía controlar el acceso a través de los permisos de usuario si utiliza LINQ to SQL.

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