Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Server: Sicherheit für Entwickler

Spezielle Benutzer

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Spezielle User wie "dbo“, "sys“, "INFORMATION_SCHEMA“ sind neben "GUEST“ in jeder Datenbank vorhanden und dienen besonderen Aufgaben. Hier erfahren Sie, welche das sind.
04:48

Transkript

Ihnen wird wahrscheinlich schon aufgefallen sein, dass es in Ihrer Datenbank Benutzer gibt, die Sie nicht selber angelegt haben, die sozusagen standardmäßig mitgeliefert werden. Und auf diese speziellen Benutzer möchte ich hier im Folgenden zu sprechen kommen. Es gibt zum einen den Dbo. Der Dbo ist ein einheitlicher Benutzer, der verwendet wird, um Objekte, die in der Datenbank angelegt werden, einen einheitlichen Besitzer zu gewährleisten. Klingt kompliziert, bedeutet aber im Wesentlichen, dass Mitglieder der db_owner-Rolle immer dann, wenn Sie ein Objekt anlegen, dieses Objekt so erzeugt wird, als wenn der Dbo, spricht dieser Benutzer, der Besitzer wäre. Das ist wichtig, wenn es später um Besitzverkettung oder Ähnliches geht, da kommen wir noch mal darauf zu sprechen dann. An der Stelle erst einmal die Information, dass das der Benutzer ist, der dann als Besitzer für die neu erzeugten Objekte eingetragen wird. Dann gibt es zwei spezielle Benutzer einmal Sys und INFORMATION_SCHEMA, die nur dafür da sind, damit die gleichnamigen Schemata ebenfalls Besitzer haben. Und das Sys-Schema hat entsprechende Besitzer Sys und das INFORMATION_SCHEMA hat entsprechend den Benutzer INFORMATION_SCHEMA als Besitzer. Und dann gibt es noch den Guest-User und mit dem hat es wirklich Dramatisches auf sich. Der Guest-User wird immer dann verwendet, wenn jemand versucht auf Ihre Datenbank zuzugreifen, allerdings keine eigene Zuordnung hat, also kein Mapping. Das bedeutet, er hat zwar ein Login auf Server-Ebene, allerdings keine User-Zuordnung auf Datenbank-Ebene. Und alle diese Zugriffe werden auf das Guest-Konto gemappt, also Sie können damit quasi ein Standardzugang in Ihre Datenbank legen. Und ich verrate Ihnen etwas aus meiner Praxis, ich kenne keinen Kunden und keine Installation, der das wirklich benutzt, weil das bedeutet, dass ein User des Servers automatisch in der Datenbank Rechte hat. Und das will man in der Regel natürlich nicht, und deswegen ist dieses User-Konto gesperrt, das heißt, die Gäste haben in der Regel kein Zugriff. Und das ist, ehrlich gesagt, wirklich ein gut gemeinter Tipp: Lassen Sie Guest auch deaktiviert, weil schlicht und ergreifend Sie haben einen Grund, warum Sie jemanden nicht in Ihrer Datenbank berechtigen. Und es gibt sehr, sehr, sehr wenige Szenarien, wo man sagen könnte, okay, falls dann doch jemand auf dem Server berechtigtes Login hat oder über ein Login auf dem Server kommen kann, dann darf er in der Datenbank vielleicht möglicherweise irgendwas lesen oder Ähnliches. Das ist sehr, sehr, sehr schwierig, insofern mein gut gemeinter Rat: Lassen Sie dieses Guest-User-Konto deaktiviert. Aber schauen wir uns doch einmal an, wie das im SQL Server Management Studio tatsächlich aussieht. Hier sehen Sie also alle Benutzer in meiner Datenbank und Sie sehen auch, dass einige dieser Benutzer ein kleines rotes Symbol unten rechts haben, das ist so ein Pfeil, der nach unten zeigt und das deutet an, dass diese Benutzer deaktiviert sind. Das Interessante ist nur, ich kann Benutzer nicht über die Oberfläche deaktivieren und auch nicht aktiviere. Das funktioniert nicht. Ich habe hier zwar eine Menge Möglichkeiten, die ich machen kann, kann auch in den Properties über eine ganze Menge an Einstellungen verfügen, aber ich kann keinen User deaktivieren, das geht nur über T-SQL. Ich habe hier ein Skript deswegen geöffnet Spezielle Benutzer.sql. Da kann ich in die Datenbank wechseln, ich kann dann hingehen und einzelne User deaktivieren, indem ich einfach das Connect-Recht entziehe. Das heißt, ich sage REVOKE CONNECT FROM und dann entsprechend den Benutzer. Und wenn ich das einmal mache, und dann hier auf der rechten Seite aktualisiere, dann sehen Sie, dass der Jens jetzt auch einen entsprechenden Pfeil unten rechts hat. Gegenprobe, ich garantiere Ihnen das Recht wieder GRANT CONNECT TO, aktualisiere noch mal die Ansicht. Und Sie sehen entsprechend, dieser Pfeil ist wieder verschwunden. Das heißt, auf die gleiche Art und Weise könnten Sie auch das Guest-Konto aktivieren. Das wäre durchaus möglich, aber, wie gesagt, gut gemeinter Rat: Das würde ich an der Stelle lassen. Wenn Sie möchten, können Sie sich auch eine Übersicht verschaffen, welche User in Ihrer Datenbank vorhanden sind und welche aktiv sind. Das ist diese kleine Abfrage auf sys.sysusers. Und ich sehe hier, welche Users ich habe und kann entsprechend hier über die Spalte ablesen, ob sie aktiviert sind oder nicht beziehungsweise deaktiviert, wenn es ein 0 ist. Und damit haben wir den Punkt rund um die speziellen Benutzer und besonders um die Gäste an der Stelle abgeschlossen.

SQL Server: Sicherheit für Entwickler

Lernen Sie, wie sich das Thema Sicherheit im Entickleralltag mit Microsofts Datenbankserver umsetzen lässt.

2 Std. 31 min (25 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:15.01.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!