Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum übergibt Entity Framework mit Windows-Authentifizierung meine Anmeldeinformationen nicht an SQL Server?

Einer der Server-Jungs bei der Arbeit hat mich auf diesen Link verwiesen, der eine hilfreiche Referenz ist:http://msdn.microsoft.com/en-us/library/bsz5788z%28v=vs.100%29.aspx

Er und andere rieten mir davon ab, die Windows-Authentifizierung zu verwenden. Ein Grund war, dass ich jeden neuen Benutzer als Konto zur Datenbank hinzufügen musste, was bei einer großen Benutzerbasis sehr umständlich werden konnte. Außerdem kommen in unserer Umgebung, in der wir das Potenzial für Benutzer haben, die aus verschiedenen Anmeldedomänen kommen, die Probleme mit den richtigen Vertrauensstellungen und Authentifizierungspfaden zwischen den Domänen ins Spiel.

Daher habe ich aufgehört zu versuchen, die Windows-Authentifizierung zum Herstellen einer Verbindung mit der Datenbank zu verwenden, und ein einzelnes Anmeldekonto in der Datenbank erstellt, das EF in der MVC-Anwendung verwenden kann (vom Webserver zum DB-Server). Auf diese Weise funktioniert es hervorragend, aber ich muss eine Art Datenbanktabelle einrichten, um zu verfolgen und zu autorisieren, welche Benutzer Lese-/Schreibzugriff auf die Hauptdaten haben, im Vergleich zu allen schreibgeschützten Benutzern (die nicht darin enthalten sind). Tabelle).

Meine Verbindungszeichenfolge wurde geändert, um diese Verbindungszeichenfolge zu haben:

<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" />

Ich dachte, die Windows-Authentifizierung\Integrierte Sicherheit würde die Dinge für die Benutzer für die gesamte Anwendung einfacher und besser machen, fand aber heraus, dass es in unserer Umgebung besser ist, sie nicht für die SQL Server-Verbindung zu verwenden.