Bei der Installation von SQL Server gibt es zwei Optionen für den abgesicherten Modus. Der Unterschied besteht darin, welche Software den Authentifizierungsprozess durchführt. Bei der Authentifizierung handelt es sich um den Prozess der Bestätigung der Identität eines Benutzers, der eine Verbindung zu SQL Server herstellt. Sobald die Authentifizierung durchgeführt wurde, kann SQL Server überprüfen, ob der Benutzer berechtigt ist, eine Verbindung zu einer angeforderten Ressource, beispielsweise einer Datenbank, herzustellen. Wenn der Benutzer über die Berechtigung zum Herstellen einer Verbindung mit der Datenbank verfügt, lässt SQL Server zu, dass die Verbindungsanforderung erfolgreich ist. Andernfalls schlägt die Verbindung fehl. Dieser Prozess der Überprüfung der Benutzerberechtigung wird auch Autorisierung genannt.
· Die Windows-Authentifizierung (auch als vertrauenswürdige Authentifizierung oder integrierte Sicherheit bekannt) verwendet die Identität des Windows-Benutzers, der die Verbindungsanforderung stellt, um die Autorisierung für die Datenbank durchzuführen. In diesem Fall muss die Verbindungszeichenfolge keinen expliziten Benutzernamen und kein explizites Kennwort enthalten. ASP.NET wird als lokaler Benutzer mit dem Namen „ASPNET“ (oder „Netzwerkdienst“ in IIS 6.0) ausgeführt. Bei Verwendung der Windows-Authentifizierung prüft SQL daher, ob dieser Benutzer über die Berechtigung zur Verwendung der Datenbank verfügt. Zu diesem Zeitpunkt werden alle ASP.NET-Anwendungen mit demselben Benutzer ausgeführt, sodass sie im abgesicherten Modus gleich behandelt werden. Obwohl es möglich ist, jede Anwendung in einem separaten ASP.NET-Prozess auszuführen (ein separater Benutzer, der jede Anwendung ausführt) oder die Windows-Benutzeridentität des Browser-Clients zu imitieren, der die Verbindungsanforderung stellt, liegen diese nicht im Rahmen dieses Buchs . Der Client-Identitätswechsel ist jedoch die häufigste Verwendung der Windows-Authentifizierung in Webanwendungen.
· Die SQL-Authentifizierung prüft explizit bereitgestellte Benutzernamen und Kennwörter anhand von Benutzern, die in SQL Server konfiguriert sind (ohne Einbeziehung des Betriebssystems). In diesem Fall kann jede Anwendung, die im ASP.NET-Prozess ausgeführt wird, mit einem separaten Zertifikat eine Verbindung zur Datenbank herstellen, wodurch die Anwendungen angemessen isoliert werden (Anwendung A kann keine Verbindung zur Datenbank herstellen, wenn sie nicht über den Benutzernamen und das Kennwort von B verfügt). . Es kann keine Verbindung zur Datenbank von B hergestellt werden. Dies ist der am häufigsten verwendete Authentifizierungsmodus für bereitgestellte Webanwendungen, insbesondere im Fall von Shared Hosting. Ein kleiner Nachteil besteht darin, dass die Anwendung das Kennwort des für die Verbindung verwendeten Benutzerkontos behalten muss. Wenn dieses Kennwort von einem böswilligen Benutzer erhalten wird, ist die Sicherheit der Datenbank gefährdet. Wie Sie jedoch später in diesem Buch sehen werden, bietet ASP.NET eine sichere Möglichkeit, das SQL-Authentifizierungskennwort in einem verschlüsselten Format in der Datei Web.config zu speichern und so das Risiko eines Zugriffs auf das Kennwort zu verringern.
· Der gemischte Modus ist eine Konfiguration von SQL Server, die sowohl Windows-Authentifizierung als auch SQL-Authentifizierung ermöglicht.
Bei der Installation von SQL Server oder SSE müssen Sie einen Authentifizierungsmodus auswählen. In SQL Server gibt es einen Assistenten, der Sie bei der Auswahl der Sicherheitsschritte unterstützt, während in SSE die Standardauswahl Windows-Authentifizierung ist. Wenn Sie die SQL-Authentifizierung installieren möchten, müssen Sie diese explizit konfigurieren. In diesem Artikel wird die Windows-Authentifizierung verwendet.
Wenn Sie SQL Server oder SSE installiert haben, können Sie den angegebenen Authentifizierungsmodus anzeigen, indem Sie RegEdit öffnen (natürlich müssen Sie es zuerst sichern), HKey_Local_Machine/Software/Microsoft/Microsoft SQL Server suchen und nach LoginMode suchen. Ein Registrierungsunterschlüssel mit dem Wert 1 stellt die Windows-Authentifizierung dar, während ein Wert von 2 den gemischten Authentifizierungsmodus darstellt.
Tabelle 3-1 fasst die Unterschiede zwischen diesen Modi zusammen.
Tabelle 3-1
Windows-Authentifizierung, | SQL-Authentifizierung, | ||
austauschbarer Name, | vertrauenswürdige Authentifizierung Integrierte Sicherheit | Nein, aber die Authentifizierung im gemischten Modus ermöglicht die Verwendung der Windows- oder SQL-Authentifizierung. | |
Bei | der Standardinstallation | muss die | |
Installationsverbindungszeichenfolge | „ | Trusted_connection | |
= | true | ||
“ | angegeben | werden | |
=wahrer | Benutzer=Benutzername; Passwort=Passwort | ||
Benutzer von ASP.NET-Webanwendungen | , ASP.NET-Prozessen, ASPNET- (IIS 5.x) oder Netzwerkdiensten (IIS 6) | SQL-Benutzer | |
können | die SQL-Ereignisse unddie | Windows-Aktivitätsverfolgung besser steuern | kann unabhängig vom Betriebssystem auf dem Host-Computer bereitgestellt werden, ohne dass ein neues Konto erstellt werden muss Für die gehostete Intranet-Site sind nur mäßige Kenntnisse erforderlich Bietet eine flexiblere Möglichkeit für Anwendungen, mit unterschiedlichen Zertifikaten eine Verbindung zu jeder Datenbank herzustellen. |
Nachteile | Die Bereitstellung eines Windows-Zertifikats für eine Webanwendung kann dazu führen, dass der Umfang der Berechtigungen im Betriebssystem zu groß wird. | Passwörter werden in der Webanwendung gespeichert (was nicht der Fall ist). Fall bei der Windows-Authentifizierung). Bestätigen Sie, dass das Passwort in der Datei Web.config gespeichert und verschlüsselt ist. Ermöglicht Low-Level-Vorgänge für Webanwendungen mithilfe von SA-Zertifikaten. Erstellen Sie immer neue Zertifikate für ASP.NET-Webanwendungen und erteilen Sie nur die erforderlichen Berechtigungen |