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

SQL Server-Authentifizierung vs. Windows-Authentifizierung:Welche und wann zu verwenden

Die Authentifizierung ist eine entscheidende Komponente jeder Sicherheitsstrategie. Heute besprechen wir die SQL Server-Authentifizierung und wie wichtig sie für die Sicherung Ihrer SQL Server-Umgebung ist und welche Rolle die Windows-Authentifizierung spielt.

Verbindung herstellen

Alles beginnt mit einer Verbindung. Um eine erfolgreiche Datenbankverbindung herzustellen, benötigt der Client oder die Anwendung die folgenden Informationen:

  • Vollqualifizierter SQL Server-Domänenname
  • Instanzname
  • Portnummer
  • Anmeldeinformationen (Benutzername und Passwort) für die Authentifizierung

Angenommen, Sie verwenden Online-Banking. Um auf Ihr Konto zugreifen zu können, müssen Sie Anmeldeinformationen zu Authentifizierungszwecken eingeben. Die Bank identifiziert Sie, wenn Sie gültige Anmeldeinformationen angeben, und gewährt nach Überprüfung den Zugriff auf ihre Dienste.

Ebenso müssen Benutzer bei der Anmeldung bei SQL Server gültige Anmeldeinformationen angeben, damit SQL Server ihre Identität authentifizieren und den entsprechenden Zugriff gewähren kann.

SQL Server bietet zwei Modi der Serverauthentifizierung:

  • Windows-Authentifizierung
  • SQL Server- und Windows-Authentifizierungsmodus (gemischter Modus)

Sie können diese Authentifizierungsmethoden während der Installation von SQL Server definieren oder später durch einen Neustart ändern. Für Datenbankadministratoren ist es wichtig, die Unterschiede zwischen diesen Authentifizierungsmethoden zu verstehen und sie gemäß den spezifischen Anforderungen ihrer Organisation zu implementieren.

Lassen Sie uns weiter eintauchen, um die Vor- und Nachteile sowohl der SQL Server- als auch der Windows-Authentifizierung zu verstehen.

Eine Übersicht über die SQL Server-Authentifizierung

Datenbankadministratoren erstellen SQL-Anmeldungen und erteilen Benutzern die entsprechenden Berechtigungen, damit sie sich bei SQL Server authentifizieren können. Benutzer müssen den Benutzernamen und das Kennwort angeben, während sie sich wie unten gezeigt mit SQL Server verbinden.

Die Anmeldeinformationen des Benutzers werden anhand der in der Master-Datenbank gespeicherten Informationen validiert. Sie können die folgenden Richtlinien für SQL Server-Anmeldungen erzwingen.

  • Passwortrichtlinie erzwingen :Die Administratoren können diese Option aktivieren, um die Windows-Kennwortrichtlinie für SQL Server-Anmeldungen zu implementieren. Es umfasst die Angabe von Passwortlänge und -komplexität.
  • Passwortablauf erzwingen :Sie können das maximale Alter eines Passworts erzwingen. Das Passwort ist abgelaufen und muss gemäß den Alterskriterien geändert werden.
  • Benutzer muss das Passwort bei der nächsten Anmeldung ändern :Der Administrator weist während der Erstellung der SQL-Anmeldung ein Kennwort zu. Sobald sich der Benutzer mit seinen Anmeldeinformationen anmeldet, muss er ein neues Passwort angeben, und die Administratoren werden dieses neue Passwort nicht bemerken.

Hinweis:Alle diese Konfigurationen erfolgen auf der individuellen SQL-Anmeldeebene. Wenn Sie mehrere SQL-Anmeldungen erstellen müssen, müssen Sie daher jedes Konto mit der erforderlichen Richtlinie konfigurieren.

Wir können nicht nur die SQL-Authentifizierung aktivieren. Verwenden Sie zum Aktivieren die gemischte Authentifizierungsoption, die sowohl die Windows- als auch die SQL-Authentifizierung umfasst.

Nachteile der SQL Server-Authentifizierung

Es gibt einige Einschränkungen und Nachteile bei der alleinigen Verwendung der SQL Server-Authentifizierung.

  • Benutzer müssen sich die SQL-Anmeldeinformationen merken und sie bei jeder Verbindung mit SQL Server in der Verbindungszeichenfolge angeben. Wenn Sie mehrere SQL Server haben, kann es für den Benutzer schwierig sein, die Passwörter für jede Instanz zu verfolgen.
  • SQL Server speichert das Passwort in verschlüsselter Form (Hash) in der Master-Datenbank. Hacker können die Informationen stehlen, indem sie auf die Datenbank zugreifen. Da diese verschlüsselten Anmeldeinformationen über das Netzwerk übertragen werden müssen, kann dies die Wahrscheinlichkeit erhöhen, dass Benutzeranmeldeinformationen gestohlen werden.
  • Sie können keine zusätzlichen (benutzerdefinierten) Kontorichtlinien mit den Anmeldedaten für die SQL Server-Authentifizierung implementieren.
  • Es erhöht die Aufgabe der Anmeldeverwaltung für Datenbankadministratoren. Datenbankadministratoren haben keine zentrale Verwaltungskonsole zum Verwalten von Anmeldungen über alle Instanzen hinweg.

Angenommen, Sie haben mehr als 500 SQL-Instanzen und ein Benutzer benötigt Zugriff auf alle diese Instanzen. In diesem Fall wäre es für den Datenbankadministrator eine mühsame Aufgabe, sich mit jeder Instanz zu verbinden und Benutzeranmeldungen zu erstellen. Ebenso muss der Datenbankadministrator, wenn eine Person die Organisation verlässt, die SQL-Anmeldungen dieser Person herausfinden und sie aus all diesen Instanzen entfernen. Dies kann sehr zeitaufwändig sein.

  • Möglicherweise treten Probleme mit verwaisten Benutzern auf, wenn Sie eine Datenbank auf andere Instanzen verschieben, und dies kann an einer SID-Nichtübereinstimmung in der Master- und Benutzerdatenbank auf der neuen Instanz liegen.
  • Sie müssen die Sicherheitsrichtlinien für jede SQL-Anmeldung verwalten. Sie können keine universelle Richtlinie für alle Konten in Ihrer Organisation definieren. Bei einem großen Datenbank-Fußabdruck ist es eine mühsame Aufgabe, die Richtlinie für jede einzelne Anmeldung zu definieren.

Beste Anwendungsfälle für die SQL Server-Authentifizierung

  • Es kann älteren Anwendungen und Software von Drittanbietern helfen, Datenbanken zu verbinden, wenn sie die Windows (AD)-Authentifizierung nicht unterstützen.
  • Möglicherweise verlangen Sie, dass Benutzer aus nicht vertrauenswürdigen Domänen eine Verbindung zu SQL Server herstellen. In diesem Fall kann die Anwendung SQL-Anmeldungen in den Verbindungszeichenfolgen angeben und eine Verbindung zur Datenbank herstellen.
  • Um eigenständige SQL-Instanzen zu verbinden, die nicht Teil von Active Directory (AD)-Gruppen sind.
  • Es kann SQL Server helfen, Webanwendungen zu unterstützen, bei denen Benutzer ihre eigenen Identitäten erstellen.
  • Die Administratoren verwenden in einigen Fällen eine gemeinsame ID für die Verbindung mit SQL Server mithilfe der Active Directory-Authentifizierung. Dieses Verbindungspooling ist keine bewährte Methode. In diesem Fall können Sie für jeden Benutzer separate Logins erstellen und sich mit seinen Anmeldeinformationen mit der Datenbank verbinden.
  • Wenn Sie SQL-Datenbank in der Cloud implementieren, d. h. Azure SQL-Datenbank oder AWS RDS, erhalten Sie standardmäßig Anmeldeinformationen für die SQL Server-Authentifizierung. Später können Sie bei Bedarf die AD-basierte Authentifizierung konfigurieren.
  • Sie können damit eine Verbindung von betriebssystemübergreifenden Systemen wie Linux und macOS herstellen.

Eine Übersicht über die Windows-Authentifizierung

Bei der Windows-Authentifizierung sollte sich der Benutzer zunächst innerhalb von Active Directory authentifizieren. SQL Server authentifiziert Benutzer über das Windows-Principal-Token im Betriebssystem. Damit fragt SQL Server nicht nach einem Passwort für die Identitätsprüfung. Daher bestätigt Windows die Identität der Benutzer für die Authentifizierung. SQL Server speichert die Anmeldeinformationen nicht in der Windows-Authentifizierung. Die Verbindung mit Windows-Authentifizierung wird als vertrauenswürdige oder integrierte Verbindung bezeichnet.

Hinweis:Die Windows-Authentifizierung ist die Standardauthentifizierungsmethode bei der Installation von SQL Server.

Vorteile der Windows-Authentifizierung

  • Die Windows-Authentifizierung ist eine sichere Methode zum Herstellen einer Verbindung mit SQL Server und verwendet die Token und SPNs für Authentifizierungszwecke unter Verwendung des Kerberos-Authentifizierungsprotokolls. Daher sendet es keine Passwörter über das Netzwerk und schützt vor dem Diebstahl von Passwörtern im gesamten Netzwerk.
  • SQL Server speichert die Anmeldeinformationen des Benutzers nicht.
  • Es verwendet das Kerberos-Sicherheitsprotokoll und Sie können Kennwortrichtlinien wie komplexe Kennwörter, Kontosperrungen und Kennwortablauf implementieren. Diese Kennwortrichtlinie kann auf Organisationsebene über alle Server hinweg implementiert werden. Daher können Sie Benutzersicherheitsrichtlinien auf Organisationsebene steuern, anstatt auf individueller Anmeldeebene wie bei der SQL Server-Authentifizierung.
  • Die Windows-Authentifizierung ermöglicht die Aufgabentrennung. Das Active Directory (AD)-Team verwaltet die AD-Benutzer. Dagegen fügt der DBA AD-Benutzer in den SQL-Instanzen hinzu und stellt entsprechende Berechtigungen bereit.
  • Active Directory hilft beim Erstellen von Windows-Gruppen. Das AD-Team kann mehrere Personen hinzufügen, die gleichen Zugriff in einer AD-Gruppe benötigen. Später können Sie die Gruppe in der SQL-Instanz hinzufügen und Berechtigungen auf Gruppenebene bereitstellen. Wenn also eine neue Person der AD-Gruppe beitritt, wird der Datenbankzugriff automatisch über den Server gewährt, auf dem diese AD-Gruppe existiert. Ebenso kann ein Benutzer, sobald er die Organisation verlässt und seine ID aus diesen AD-Gruppen entfernt wird, nicht mehr auf die Datenbank zugreifen.

Nachteile der Windows-Authentifizierung

  • Wenn Sie nur die Windows-Authentifizierung für SQL Server verwenden, sollten alle Benutzer Teil des Active Directory sein.
  • DBAs haben keine Kontrolle über die AD-Logins und -Gruppen.
  • Die AD-Gruppenmitgliedschaft ist dem DBA nicht bekannt. Sie erhalten keine Benachrichtigung, wenn ein Benutzer zu den AD-Gruppen hinzugefügt oder daraus entfernt wird.

Zusammenfassung

Dieser Blogbeitrag beschreibt die Schlüsselkomponenten der SQL Server-Authentifizierung und der Windows-Authentifizierung. Ich hoffe, es hilft Ihnen, die Unterschiede zwischen diesen Authentifizierungsmethoden zu verstehen, um zu entscheiden, welche für Ihr Unternehmen und Ihre Umstände am besten geeignet ist.

Die SQL Server-Authentifizierung kann auf demselben Computer wie SQL Server oder über eine Remoteverbindung verwendet werden. Wenn Sie in einer Active Directory-Umgebung arbeiten, wird die Verwendung der Windows-Authentifizierung empfohlen. Wenn Sie in einer Umgebung ohne Active Directory arbeiten, können Sie die SQL Server-Authentifizierung für Datenbankverbindungen verwenden.

Die Windows-Authentifizierung bietet mehr Sicherheit und Flexibilität für die Verwaltung von Anmeldungen in SQL Server. Daher sollten Sie es wann immer möglich verwenden.