Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché Entity Framework con autenticazione di Windows non trasmette le mie credenziali a SQL Server?

Uno dei server al lavoro mi ha indicato questo link che è un utile riferimento:http://msdn.microsoft.com/en-us/library/bsz5788z%28v=vs.100%29.aspx

Lui e altri mi hanno scoraggiato dall'usare l'autenticazione di Windows. Uno dei motivi era che avrei iniziato a dover aggiungere ogni nuovo utente come account al database e potrebbe diventare molto ingombrante con una vasta base di utenti. Inoltre, nel nostro ambiente in cui abbiamo il potenziale per utenti provenienti da domini di accesso diversi, entrano in gioco i problemi con i trust e i percorsi di autenticazione corretti tra i domini.

Quindi ho smesso di provare a utilizzare l'autenticazione di Windows per connettermi al database e ho creato un singolo account di accesso nel database per EF nell'applicazione MVC da utilizzare (dal server Web al server DB). Funziona benissimo in questo modo, tuttavia, dovrò impostare una sorta di tabella del database per tracciare e autorizzare quali utenti hanno accesso in lettura/scrittura ai dati principali rispetto a tutti gli utenti di sola lettura (che non saranno in quello tabella).

La mia stringa di connessione è cambiata per avere questa stringa di connessione:

<add name="ReclosingContext" connectionString="Data Source=sqlserverbox\devtest;Initial Catalog=Reclosing;Integrated Security=False;User ID=xxxxxxxx;Password=xxxxxxxxx;MultipleActiveResultSets=True"
      providerName="System.Data.SqlClient" />

Pensavo che Windows Authentication\Integrated Security avrebbe reso le cose più semplici e migliori per gli utenti per l'intera applicazione, ma ho scoperto che nel nostro ambiente è meglio non usarlo per la connessione SQL Server.