SQL Server: Sicherheit von Anfang an im Blick

Sicherheit muss von Anfang an Priorität haben, also schon beim Designprozess. Hier erfahren Sie einige Richtlinien für die Entwicklung einer SQL Server-Datenbank, die man berücksichtigen sollte, um eine von Grund auf sichere Anwendung zu erstellen.

Entwickler und Administratoren sind laufend gezwungen, ihre Strategien zur Sicherheit von Anwendungen zu überdenken. Dabei ist das nachträgliche Aufstellen von Wachposten eindeutig keine akzeptable Lösung mehr.

Die Grundlagen

Wer mit den grundlegenden Konzepten der SQL Server-Sicherheit noch nicht vertraut ist, sollte hier abbrechen und seine Wissenslücken füllen. Man kann eine Datenbank nicht ordentlich absichern, wenn man diese Konzepte nicht kennt. Vielleicht hilft es, sich die Sicherheitsvorkehrungen am Beispiel eines Autos zu vergegenwärtigen. Es gibt einen Motor, einen Zündschlüssel und all die Prozesse, die in der Zeit ablaufen, die zwischen dem Drehen des Zündschlüssels und dem Starten des Motors vergeht. Hat ein Fahrer von diesen Prozessen keine Ahnung, dürfte die Wahrscheinlichkeit äußerst gering sein, dass er sich bei einer Panne selber helfen kann. Natürlich kann man den Wagen in die Hände eines Mechanikers geben, aber in Sachen Sicherheit einer Anwendung ist man selbst der Datenbank-Mechaniker.

Zunächst besteht die Wahl zwischen zwei Sicherheitsmodi:

  • Windows Authentication Mode: Benutzer können auf einen Server über ein bestehendes Windows-Benutzerkonto zugreifen. Wenn ein Benutzer versucht, eine Verbindung zu einem Server herzustellen, validiert SQL Server den Windows-Benutzernamen und das Passwort des Benutzers. Der User muss sich nicht zwei Mal anmelden, im Netzwerk und beim SQL Server, sondern ein Anmeldevorgang reicht. Dieser Ansatz wird auch vertrauenswürdige Verbindung genannt.
  • Mixed Mode: Dieser Modus kombiniert Windows-Authentifizierung und SQL Server-Authentifizierung. Benutzer können wie gewohnt über ein Windows-Benutzerkonto eine Verbindung herstellen. Aber man kann auch direkt in SQL Server Benutzerkonten einrichten, die keinen Zusammenhang mit Windows-Konten haben. Jedes SQL Server-Konto speichert einen Benutzernamen und ein Passwort.

Nach Möglichkeit ist der Windows Authentication-Modus zu empfehlen. SQL Server Authentication (Mixed) wird für non-trusted Umgebungen und zur Abwärtskompatibilität mit früheren Versionen von SQL Server bereitgestellt. Windows Authentication ist in das Windows-Sicherheitssystem integriert, das mehr Funktionen zur Verfügung stellt als SQL Server Authentication, in der Regel einfacher zu benutzen, effizienter und sicherer. Man sollte sich schon früh während des Entwicklungsprozesses entscheiden, welchen Modus man einsetzen will.

Passwörter

Mit welchem Modus man auch arbeitet – man sollte das Passwort für den System-Administrator (sa) in SQL Server immer eigenhändig vergeben. Bei der Installation erstellt SQL Server automatisch einen Administrator-Benutzer mit dem SQL Server-Anmeldenamen sa und einem leeren Passwort. Der SQL-Server kann nur dann mit einem leeren sa-Passwort installiert werden, wenn der trusted Modus genutzt wird. Verwendet man den Windows Authentication Mode, sollte die Notwendigkeit eines Passworts für den Benutzer sa theoretisch nicht anfallen, da SQL Server-Anmeldungen nicht akzeptiert werden. Aber es kann auch nicht schaden, trotzdem eines einzurichten, falls man in Zukunft doch einmal in den Mixed Mode wechseln muss.

Wenn der Sicherheitsmodus der Motor ist, sind Anmeldungen die Zündschlüssel, die das Ganze zum Laufen bringen. Man muss über den richtigen Schlüssel verfügen, um die Maschine starten zu können. Mit Anmeldungen ist es genau so. Wenn man nicht den korrekten Benutzernamen und das richtige Passwort eingibt, kann man keine Verbindung zum Netzwerk herstellen und damit auch nicht zum SQL Server.

Als Administrator kann man sofort loslegen, sobald man den Zündschlüssel ins Schloss gesteckt und den Anlasser betätigt hat. Dabei steht zuerst die Definition der folgenden Attribute an:

  • Benutzer (Konto): Ein SQL Server-Sicherheitskonto, das einen einzelnen Benutzer repräsentiert. Ein Benutzer hat ein Windows-Benutzerkonto oder ein SQL Server-Login, das sich auf ein Benutzerkonto in einer Datenbank bezieht.
  • Gruppen (Konto): Jeder Benutzer kann zu einer oder mehreren Gruppen gehören, die in Windows oder in SQL Server definiert werden, je nach Authentifizierungsmodus. Jede Gruppe verfügt über bestimmte Berechtigungen. Als Mitglied einer Gruppe erhält man alle Berechtigungen der Gruppe.
  • Objekt-Eigentümerschaft: Die Eigentümerschaft gehört demjenigen Benutzer, der das Objekt erstellt. Besitzer können anderen Benutzern Zugriff gewähren. Wenn man z.B. einen View besitzt, kann man entscheiden, welche Benutzer sich Daten aus diesem View anzeigen lassen dürfen.
  • Berechtigungen: Eine Berechtigung bezeichnet die Fähigkeit, bestimme Aktionen durchzuführen, z.B. das Öffnen eines Views oder die Änderung einer abgespeicherten Abfrage. SQL Server kennt drei Zustände für Berechtigungen: GRANT erlaubt dem Benutzer den Zugriff, REVOKE widerruft dies, und DENY verwehrt einem Benutzer den Zugriff auf das Objekt.
  • Rolle: Dies ist ein SQL Server-Sicherheitskonto, das mehrere Einzelkonten bei der Zuweisung von Berechtigungen als Einheit behandelt. Kurz gesagt, legen Rollen fest, was einem Benutzer in einer bestimmten Datenbank erlaubt ist und was nicht.

Themenseiten: Big Data, Datenbank, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu SQL Server: Sicherheit von Anfang an im Blick

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *