<p>I'm still trying to get my head around LINQ and accessing a SQL Database.</p>

<p>I was always taught that you should only have execute permissions of stored procedures to your data.</p>

<p>You should never have select / insert / update / delete.</p>

<p>(This is because of performance and security)</p>

<p>To get the data out of LINQ you obviously need select permissions.  I know you can use stored procs with LINQ, but since I can't do joins what's the point?</p>

<p>Have I missed something???</p>

1) We're programmers, not DBA fascists.  If your requirements state that the database must be locked down 100%, Linq is not for you.  I'm not a DBA, so I believe that most of the performance/security hype is just that.  Linq is for me.
2) You can do joins with linq.
@Philippe
:  Linq automatically transforms evaluations into query parameters, so it provides some sql injection protection.  However, you still have to closely evaluate your requirements to determine how much security you need and at what levels.  Linq makes dealing with the database much easier, but it makes it easier to put secuirty design on the back burner, which is a bad thing.