{"id":55001246,"date":"2020-08-01T00:00:00","date_gmt":"2020-08-05T10:25:28","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1246"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"SQL_ServerSecurity__Teil_2_Zugriffsberechtigung","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/","title":{"rendered":"SQL Server-Security &#8211; Teil 2: Zugriffsberechtigung"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>SQL Server bietet eine Vielzahl an M&ouml;glichkeiten und Funktionen im Bereich Security &#8211; von Zugriffsberechtigungen auf Objekte und Daten &uuml;ber verschiedene Verschl&uuml;sselungsmethoden bis hin zur Protokollierung von Datenzugriffen und Daten&auml;nderungen. Viele der Funktionen &auml;hneln sich und haben zum Teil die gleichen Auswirkungen. Da ist es nicht einfach, einen &Uuml;berblick zu erhalten. Also von Anfang an. Als erstes lernen Sie die Sicherheitsarchitektur von SQL Server und die Anmeldung &#8222;sa&#8220; kennen.<\/b><\/p>\n<p>Der SQL Server arbeitet mit einer mehrstufigen Sicherheitsarchitektur. <\/p>\n<p>Die erste Stufe ist die Authentifizierung des Anwenders am SQL Server selbst. Dies erfolgt mit der sogenannten Anmeldung. Die Anmeldung alleine erlaubt dem Anwender noch keinen Zugriff auf die Daten.<\/p>\n<p>Das w&auml;re auch zu unsicher, schlie&szlig;lich kann eine SQL Server-Instanz mehrere Datenbanken verwalten und nicht jeder Anwender darf alle Daten lesen und &auml;ndern.<\/p>\n<p>Der Zugang zu einer Datenbank ist die zweite Stufe der Sicherheitsarchitektur. Dem Anwender wird der Zugang zu einer Datenbank nur gew&auml;hrt, wenn seine Anmeldung der Datenbank zugeordnet ist. Die Anmeldung ist dann in der Datenbank als Benutzer zu sehen. <\/p>\n<p>Der Benutzer ist die Basis f&uuml;r die dritte Stufe der Sicherheitsarchitektur. Er besitzt die Zugriffsrechte an den Datenbankobjekten, wie Tabellen, Sichten und Gespeicherten Prozeduren, und somit letztendlich die Lese- und Schreibrechte f&uuml;r die Daten. <\/p>\n<p><b>Die SQL Server-Sicherheitsarchitektur<\/b><\/p>\n<p>Ein Vergleich mit dem echten Leben soll dies verdeutlichen. Angenommen, Sie haben einen Termin in einem gr&ouml;&szlig;eren Unternehmen. Sie betreten das Firmengeb&auml;ude und gehen zur Anmeldung. Dort stellen Sie sich vor und teilen der Empfangsdame mit, dass Sie einen Termin mit Herrn M&uuml;ller von der Abteilung <b>Einkauf <\/b>haben. Sie erhalten ein Namensschild mit der Aufschrift <b>Besucher <\/b>und werden gebeten, es sich in der Sitzgruppe gem&uuml;tlich zu machen, w&auml;hrend Sie auf Herrn M&uuml;ller warten.<\/p>\n<p>In diesem Vergleich steht das Firmengeb&auml;ude f&uuml;r die SQL Server-Instanz und Ihr Namensschild mitsamt der Genehmigung, sich in der Lobby aufzuhalten, entspricht der SQL Server-Anmeldung <b>Besucher<\/b>.<\/p>\n<p>Herr M&uuml;ller l&auml;sst nicht lange auf sich warten. Er begr&uuml;&szlig;t Sie h&ouml;flich und nimmt Sie mit in die Abteilung <b>Einkauf<\/b>. Dort sollen Sie in seinem Auftrag Daten lesen, einf&uuml;gen, &auml;ndern und l&ouml;schen.<\/p>\n<p>Der Zutritt zur Abteilung <b>Einkauf <\/b>ist in der SQL Server-Instanz vergleichbar mit der Zuordnung der Anmeldung <b>Besucher <\/b>zur Datenbank <b>Einkauf<\/b>. In der Datenbank existiert jetzt der Benutzer <b>Besucher<\/b>, dem Lese- und Schreibrechte f&uuml;r alle Daten erteilt wurden<\/p>\n<p>Beim Mittagessen treffen Sie Herrn Schmidt. Er braucht noch weitere Auswertungen und Sie sollen doch bitte um 15 Uhr zu ihm in die Personalabteilung kommen. Gegen 15 Uhr gehen Sie zu Herrn Schmidt und erstellen ihm die gew&uuml;nschten Auswertungen.<\/p>\n<p>Dieser Abteilungswechsel entspricht der Zuordnung der Anmeldung <b>Besucher <\/b>zu einer weiteren Datenbank der SQL Server-Instanz &#8211; der Datenbank <b>Personal<\/b>. Dort gibt es nun auch einen Benutzer namens <b>Besucher<\/b>. Allerdings besitzt dieser nur Leserechte.<\/p>\n<p>Zusammengefasst zeigt das Beispiel eine SQL Server-Instanz mit der Anmeldung <b>Besucher<\/b>. Diese ist den Datenbanken <b>Einkauf <\/b>und <b>Personal <\/b>zugeordnet.<\/p>\n<p>Die Datenbank <b>Einkauf <\/b>enth&auml;lt den Benutzer <b>Besucher <\/b>mit Lese- und Schreibrechten. In der Datenbank <b>Personal <\/b>gibt es ebenfalls einen Benutzer namens <b>Besucher<\/b>, dieser besitzt jedoch nur Leserechte.<\/p>\n<p>Beide Benutzer existieren nur innerhalb ihrer Datenbanken. Auch wenn beide den gleichen Namen verwenden, haben sie bis auf eine Ausnahme nichts miteinander zu tun. Sie verweisen beide auf die Anmeldung <b>Besucher <\/b>und somit letztendlich auf den Anwender, der diese Anmeldung verwendet.<\/p>\n<p>Das ist das Prinzip der mehrstufigen Sicherheitsarchitektur. &Uuml;ber die Anmeldung erh&auml;lt ein Anwender Zugang zur SQL Server-Instanz und kann dort in mehreren Datenbanken mit unterschiedlichen Rechten arbeiten.<\/p>\n<p><b>SQL Server-Instanzen<\/b><\/p>\n<p>M&ouml;glicherweise fragen Sie sich, was genau eine SQL Server-Instanz ist. Die Antwort ist recht einfach. Es ist das Ergebnis Ihrer SQL Server-Installation. <\/p>\n<p>Mit der einfachen Installation des SQL Servers erstellen Sie die Standardinstanz. Diese l&auml;sst sich dann mit dem Namen des Rechners ansprechen. Lautet der Rechnername <b>PC01<\/b>, verbinden Sie sich mit der SQL Server-Instanz <b>PC01<\/b>. <\/p>\n<p>Sie d&uuml;rfen die Installation auf dem gleichen Rechner nochmals ausf&uuml;hren. Jedoch m&uuml;ssen Sie jetzt einen Instanznamen angeben. Nennen Sie die Instanz zum Beispiel <b>Entwicklung<\/b>, steht nach der Installation eine weitere eigenst&auml;ndige SQL Server-Instanz unter dem Namen <b>PC01Entwicklung<\/b> zur Verf&uuml;gung.<\/p>\n<p>Eine sogenannte benannte Instanz kennen Sie vielleicht von der SQL Server Express Edition, wird diese doch immer mit einem Instanznamen installiert. Der Name einer SQL Server Express Edition auf dem Rechner <b>PC01<\/b> w&auml;re <b>PC01SQLEXPRESS<\/b>.<\/p>\n<p>Insgesamt k&ouml;nnen Sie mit einer Lizenz 50 Instanzen auf einem Rechner installieren, eine Standardinstanz und  benannte Instanzen. Dabei gibt es zwischen einer Standardinstanz und den benannten Instanzen keine Unterschiede. Jede SQL Server-Instanz bietet den gleichen Funktionsumfang. Sie k&ouml;nnen dort mehrere Datenbanken verwalten und nat&uuml;rlich auch eigene Anmeldungen festlegen. <\/p>\n<p>Eine Anmeldung namens <b>M&uuml;ller <\/b>in der SQL Server-Instanz <b>PC01<\/b> l&auml;sst sich nur f&uuml;r den Zugang zu dieser Instanz verwenden. Eine Verbindung zur Instanz <b>PC01Entwicklung<\/b> ist mit dieser Anmeldung nicht m&ouml;glich. <\/p>\n<p>Existiert in der SQL Server-Instanz <b>PC01Entwicklung<\/b> ebenfalls eine Anmeldung namens M&uuml;ller, erm&ouml;glicht diese zwar den Zugang zur Instanz <b>PC01Entwicklung<\/b>, aber eben nicht zur Instanz <b>PC01<\/b>. Die beiden Anmeldungen haben schlicht und ergreifend nichts miteinander zu tun.<\/p>\n<p>Durch die eigenen Anmeldungen lassen sich SQL Server-Instanzen sehr gut zur Trennung von Daten unterschiedlicher Sicherheitsstufen einsetzen. So legen Sie zum Beispiel die Datenbanken mit den Daten der Produktion auf die Standardinstanz und auf eine weitere SQL Server-Instanz namens <b>PC01Forschung<\/b> die Datenbanken mit den sensiblen Daten der Forschungsabteilung. <\/p>\n<p>Im oben verwendeten Vergleich mit dem Besucher im Unternehmen stellt die Standardinstanz die Zentrale des Unternehmens dar und die Instanz <b>PC01Forschung<\/b> deren Forschungszentrum. Das Forschungszentrum ist in einem eigenen Geb&auml;ude. Wechselt der Besucher von der Zentrale zum Forschungszentrum, muss er sich dort beim Empfang erneut anmelden.<\/p>\n<p><b>Begrifflichkeiten<\/b><\/p>\n<p>Die im SQL Server verwendeten Begriffe <b>Anmeldung <\/b>und <b>Benutzer <\/b>sind nicht besonders geeignet f&uuml;r eine Artikelserie zum Thema <b>Security<\/b>. Beide Begriffe haben mehrere Bedeutungen.<\/p>\n<p>Bei einer Anmeldung kann es sich um eine SQL Server-Anmeldung oder auch um die Anmeldung am Clientrechner handeln. Der Begriff <b>Benutzer <\/b>steht f&uuml;r die Person am Rechner wie f&uuml;r die Zuordnung einer SQL Server-Anmeldung zu einer Datenbank.<\/p>\n<p>Um Missverst&auml;ndnisse zu vermeiden, beschreibt von nun an der Begriff <b>Anwender <\/b>die Person am Rechner und <b>Benutzerkonto <\/b>die von der Person verwendete Anmeldung am Betriebssystem.<\/p>\n<p>Zudem wird der Einfachheit halber ab jetzt der Begriff SQL Server anstatt SQL Server-Instanz verwendet.<\/p>\n<p><b>Authen-ti-fi-zie-rungs-methoden<\/b><\/p>\n<p>SQL Server bietet zwei Authentifizierungsmethoden &#8211; die Windows-Authentifizierung und die SQL Server-Authentifizierung. Bereits bei der Installation d&uuml;rfen Sie entscheiden, ob Sie nur die Windows-Authentifizierung oder eine Kombination der beiden nutzen m&ouml;chten.<\/p>\n<p>Dabei ist die Windows-Authentifizierung als Standard vorausgew&auml;hlt. Nicht ohne Grund, denn diese Authentifizierungsmethode wird von Microsoft empfohlen. Sie erlaubt als SQL Server-Anmeldungen ausschlie&szlig;lich Benutzerkonten von Windows-Benutzern und Windows-Gruppen. <\/p>\n<p>F&uuml;r den Anwender ist dies sogar von Vorteil. Er muss sich am SQL Server nicht erneut anmelden. Da sein Benutzerkonto mit einer SQL Server-Anmeldung verbunden ist, erh&auml;lt er den direkten Zugang zum SQL Server.<\/p>\n<p>Wenn Sie sich bei der Installation f&uuml;r die Windows-Authentifizierung entscheiden, sollten Sie mit der Schaltfl&auml;che <b>Hinzuf&uuml;gen <\/b>ein Benutzerkonto als Administrator aufnehmen (siehe Bild 1). Nur mit diesem Benutzerkonto haben Sie nach der Installation entsprechende Adminis-trationsrechte im SQL Server.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.03.png\" alt=\"Administrator bei der Windows-Authentifizierung\" width=\"649,559\" height=\"489,9898\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Administrator bei der Windows-Authentifizierung<\/span><\/b><\/p>\n<p>Reicht Ihnen die Windows-Authentifizierung nicht aus, k&ouml;nnen Sie zus&auml;tzlich noch die SQL Server-Authentifizierung aktivieren.<\/p>\n<p>Diese Kombination wird <b>Gemischter Modus <\/b>genannt. <\/p>\n<p>Der gemischte Modus erlaubt Ihnen die Definition eigener Anmeldungen mit Benutzernamen und Kennwort. Diese Art der Authentifizierung ist vor allem in Umgebungen notwendig, die keine Windows-Benutzerkonten unterst&uuml;tzen, wie ein SQL Server auf einem Linux-System ohne Anbindung an ein Active Directory oder ein SQL Server als Backend eines Webshops. <\/p>\n<p>Entscheiden Sie sich f&uuml;r den gemischten Modus, m&uuml;ssen Sie der SQL Server-Anmeldung <b>sa <\/b>ein Kennwort vergeben (siehe Bild 2). <b>sa <\/b>steht f&uuml;r <b>System Administrator <\/b>und beinhaltet alle administrativen Rechte f&uuml;r den SQL Server. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.04.png\" alt=\"sa-Konto bei der SQL Server-Authentifizierung\" width=\"649,559\" height=\"489,9898\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: sa-Konto bei der SQL Server-Authentifizierung<\/span><\/b><\/p>\n<p>Die Anmeldung <b>sa <\/b>ist jedoch nicht nur den Administratoren vorbehalten. Jeder Anwender kann sie nutzen. Er muss nur das korrekte Kennwort eingeben und schon hat er alle Rechte im SQL Server. Es gibt f&uuml;r ihn dort keinerlei Einschr&auml;nkungen. Aus diesem Grund sollten Sie unbedingt ein komplexes und starkes Kennwort verwenden.<\/p>\n<p>Jetzt haben Sie vielleicht Ihren SQL Server schon installiert und w&uuml;rden gerne im Nachhinein die Authentifizierungsmethode wechseln. Das ist kein Problem, denn Sie k&ouml;nnen dies im SQL Server Management Studio jederzeit &auml;ndern.<\/p>\n<p>Dazu starten Sie das SQL Server Management Studio und melden sich mit der Ihnen bekannten Anmeldung am SQL Server an. Nach der Anmeldung sehen Sie auf der linken Seite den Objekt-Explorer. Dort klicken Sie mit der rechten Maustaste auf den ersten Eintrag, den mit dem Namen Ihres SQL Servers (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.05.png\" alt=\"Die SQL Server-Instanz im Objekt-Explorer\" width=\"299,7964\" height=\"270,4457\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Die SQL Server-Instanz im Objekt-Explorer<\/span><\/b><\/p>\n<p>Im Kontextmen&uuml; w&auml;hlen Sie dann den Eintrag <b>Eigenschaften <\/b>und wechseln im folgenden Dialog zur Seite <b>Sicherheit<\/b>. Unter <b>Serverauthentifizierung <\/b>k&ouml;nnen Sie nun zwischen den einzelnen Modi wechseln (siehe Bild 4). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.06.png\" alt=\"Wechsel der Authentifizierungsmethode\" width=\"549,6265\" height=\"253,1555\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Wechsel der Authentifizierungsmethode<\/span><\/b><\/p>\n<p>Nach einem Klick auf <b>OK <\/b>werden Sie darauf hingewiesen, dass die &Auml;nderungen erst nach einem Neustart des SQL Server-Diensts wirksam sind. Dazu &ouml;ffnen Sie im SQL Server Management Studio das gleiche Kontextmen&uuml; wie eben und w&auml;hlen dort den Eintrag <b>Neu starten<\/b>. <\/p>\n<p>Es folgt die Sicherheitsabfrage aus Bild 5. Aus gutem Grund, denn w&auml;hrend des Neustarts steht der SQL Server nicht zur Verf&uuml;gung. Angemeldete Anwender werden in dieser Zeit entsprechende Fehlermeldungen erhalten. Sie sollten also den SQL Server nur dann neu starten, wenn Sie sich sicher sind, dass au&szlig;er Ihnen niemand sonst angemeldet ist.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.07.png\" alt=\"Neustart der SQL Server-Instanz\" width=\"549,6265\" height=\"118,618\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Neustart der SQL Server-Instanz<\/span><\/b><\/p>\n<p>F&uuml;r die Beispiele in diesem Artikel ben&ouml;tigen Sie den gemischten Modus. Verwenden Sie aktuell die reine Windows-Authentifizierung, &auml;ndern Sie die Einstellung wie oben beschrieben auf SQL Server- und Windows-Authentifizierung.<\/p>\n<p>Nach dem Wechsel der Authentifizierungsmethode m&uuml;ssen Sie die Anmeldung <b>sa<\/b> noch aktivieren und ihr ein Kennwort vergeben. Dazu navigieren Sie zum Ordner <b>Sicherheit<\/b>, erweitern den Unterordner <b>Anmeldungen <\/b>und &ouml;ffnen per Doppelklick auf den Eintrag <b>sa <\/b>den Dialog <b>Anmeldungseigenschaften<\/b>.<\/p>\n<p>Hier wechseln Sie zur Seite <b>Status <\/b>und aktivieren unter <b>Anmeldename <\/b>die Option <b>Aktiviert <\/b>(siehe Bild 6). Danach geben Sie der Anmeldung in der Seite <b>Allgemein <\/b>ein Kennwort und speichern die &Auml;nderungen mit einem Klick auf <b>OK<\/b>. Jetzt k&ouml;nnen Sie sich am SQL Server mit der Authentifizierungsmethode <b>SQL Server-Authentifizierung<\/b>, dem Anmeldename <b>sa <\/b>und dem eben erstellten Kennwort anmelden (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.07.png\" alt=\"Authentifizierung mit der Anmeldung sa\" width=\"549,6265\" height=\"362,9611\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Authentifizierung mit der Anmeldung sa<\/span><\/b><\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.06.png\" alt=\"Aktivieren der Anmeldung sa\" width=\"549,6265\" height=\"497,8503\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Aktivieren der Anmeldung sa<\/span><\/b><\/p>\n<p><b>Die SQL Server-Anmeldung &#8222;sa&#8220;<\/b><\/p>\n<p>Entgegen der Empfehlung von Microsoft wird gerade f&uuml;r die Verbindung vom Access-Frontend zum SQL Server-Backend selten die Windows-Authentifizierung verwendet. In vielen F&auml;llen findet dies &uuml;ber die SQL Server-Authentifizierung statt &#8211; und dabei oft mit der SQL Server-Anmeldung <b>sa<\/b>.<\/p>\n<p>Es bietet sich ja auch an. Die Anmeldung <b>sa <\/b>ist fester Bestandteil des SQL Servers. Sie ist allen SQL Servern verf&uuml;gbar und man kann sie nach der Installation direkt verwenden. Zudem gibt es mit dieser Anmeldung im SQL Server keinerlei Einschr&auml;nkungen.<\/p>\n<p>Bei der Migration von Access nach SQL Server ist dies von Vorteil. Schlie&szlig;lich gibt es gen&uuml;gend Punkte zu beachten und Neues zu lernen. Da m&ouml;chte man sich nicht mit den Widrigkeiten fehlender Rechte aufhalten.<\/p>\n<p>Leider bleibt es in vielen F&auml;llen dann bei dieser Authentifizierung. Die <b>sa<\/b>-Anmeldung ist nicht nur in Entwicklungs- und Testumgebungen zu finden, sondern auch in vielen Produktivumgebungen.<\/p>\n<p>Falls Sie in Ihrer Access und SQL Server-Applikation bereits eine andere Anmeldung verwenden, haben Sie schon einen h&ouml;heren Zugriffsschutz erreicht. Nutzen Sie allerdings die <b>sa<\/b>-Anmeldung, sollten Ihnen die M&ouml;glichkeiten klar sein, die Sie Ihren Anwendern damit in die Hand geben. Genau diese werden Sie nun kennenlernen.<\/p>\n<p>Es gibt in Access mehrere Methoden die Daten einer SQL Server-Datenbank zu verarbeiten. In den meisten F&auml;llen findet dies wohl mit eingebundenen Tabellen statt, gefolgt von Pass Through-Abfragen per DAO in VBA und mittels Direktzugriff &uuml;ber ADO. ADO ben&ouml;tigt f&uuml;r den Datenzugriff einen OLE DB-Treiber, f&uuml;r eingebundene Tabellen und Pass Through-Abfragen hingegen ist ein ODBC-Treiber erforderlich.<\/p>\n<p>Beiden Treibern muss f&uuml;r den Datenzugriff neben dem Benutzernamen auch das Kennwort der SQL Server-Anmeldung &uuml;bergeben werden. Doch wie &uuml;bergibt man das Kennwort<\/p>\n<p>Die einfachste Variante verlangt die Kennworteingabe vom Anwender. Dies ist mit Abstand aber auch die unsicherste Variante. Schlie&szlig;lich kann sich der Anwender mit dieser Anmeldung direkt am SQL Server anmelden. Dazu ben&ouml;tigt er nur ein Frontend, wie eine eigene Access-Datenbank oder das kostenlose SQL Server Management Studio.<\/p>\n<p>Mit der Anmeldung <b>sa <\/b>erh&auml;lt der Anwender im SQL Server die Rechte eines Administrators. Denkt man &uuml;ber die hiermit verbundenen M&ouml;glichkeiten nach, fallen einem in erster Linie administrative T&auml;tigkeiten ein, wie Berechtigungen &auml;ndern, Datenbanken l&ouml;schen et cetera. <\/p>\n<p>Apropos Datenbanken l&ouml;schen. Das L&ouml;schen von Daten-banken ist zwar &auml;rgerlich, es ist aber auch l&ouml;sbar. Sie werden recht schnell mitbekommen, wenn die Datenbank nicht mehr existiert.<\/p>\n<p>Alles halb so wild, ist die Datenbank doch mit der letzten Datensicherung schnell wiederhergestellt &#8211; sofern es eine aktuelle und fehlerfreie Datensicherung gibt. An dieser Stelle sei die Frage erlaubt, wann Sie Ihre Datensicherung das letzte Mal getestet haben<\/p>\n<p><!--30percent--><\/p>\n<p>Unrechtm&auml;&szlig;ige administrative Vorg&auml;nge lassen sich in der Regel beheben, wenn man sie denn erkannt hat. Viel riskanter aber ist das heimliche Lesen oder gar &Auml;ndern von Daten.<\/p>\n<p>Mit der Anmeldung <b>sa <\/b>hat der Anwender nicht nur administrative Rechte, er besitzt auch vollen Zugang zu allen Daten des SQL Servers. Es hindert ihn niemand daran, die Daten zu lesen und zu seinen Gunsten zu &auml;ndern.<\/p>\n<p>Folgendes Beispiel soll dies verdeutlichen. Ein Anwender legt in der entsprechenden Datenbank einen Lieferanten an und erfasst danach in unregelm&auml;&szlig;igen Abst&auml;nden zugeh&ouml;rige Eingangsrechnungen unterhalb der Budgetfreigabegrenze. Da er dabei eine ihm bekannte Bankverbindung angegeben hat, erh&auml;lt er von der nichtsahnenden Buchhaltung einen kleinen Nebenverdienst.<\/p>\n<p>Sie haben in Ihrer Datenbank keine Lieferantendaten Aber vielleicht liegen diese in einer anderen Datenbank auf dem gleichen SQL Server. Auch wenn es bereits erw&auml;hnt wurde: F&uuml;r die Anmeldung <b>sa <\/b>gibt es im SQL Server keine Grenzen.<\/p>\n<p>Der Anwender kann die Daten aller Datenbanken einsehen und &auml;ndern! Dem Benutzer das Kennwort f&uuml;r die Anmeldung <b>sa <\/b>mitzuteilen, mag eine einfache L&ouml;sung sein.<\/p>\n<p>Sie ist aber, wie so oft bei einfachen L&ouml;sungen, die unsicherste Methode, die Sie verwenden k&ouml;nnen.<\/p>\n<p><b>Access und das Kennwort<\/b><\/p>\n<p>Eine weitaus bessere Variante bietet Ihnen Access. Beim Einbinden der Tabellen wie auch beim Erstellen der Pass Through-Abfragen k&ouml;nnen Sie das Kennwort der SQL Server-Anmeldung speichern. Danach ist die Kennwort-eingabe nicht einmal mehr beim Start der Access-Applikation erforderlich.<\/p>\n<p>Hierzu brauchen Sie eine ODBC-Verbindung. Diese erstellen Sie am besten vorab als Systemdatenquelle &uuml;ber den ODBC-Dialog des Betriebssystems. Auf diese Weise steht die ODBC-Datenquelle jedem Anwender zur Verf&uuml;gung, der sich an dem Rechner anmeldet. Anhand der ODBC-Datenquelle wird die Verbindung von Ihrem Access-Frontend zur Datenbank Ihres SQL Servers hergestellt. Somit ist das Einrichten dieser ODBC-Datenquelle auf jedem Rechner erforderlich, auf dem auch Ihr Access-Frontend installiert ist.<\/p>\n<p>Die Konfiguration der ODBC-Datenquelle k&ouml;nnen Sie anhand der Beispielapplikation <b>WaWi<\/b> nachvollziehen. Dazu installieren Sie zun&auml;chst die Datenbank <b>WaWi_SQL <\/b>in Ihrem SQL Server. <\/p>\n<p>&Ouml;ffnen Sie im SQL Server Management Studio die Datei <b>WaWi_SQL.sql <\/b>und starten Sie das Skript mit einem Klick auf <b>Ausf&uuml;hren <\/b>(siehe Bild 8). Nachdem die Datenbank angelegt ist, sehen Sie in der Registerkarte Meldungen die Ausgabe <b>Fertig!.<\/b><\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.08.png\" alt=\"Installation der Beispieldatenbank\" width=\"649,559\" height=\"433,521\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Installation der Beispieldatenbank<\/span><\/b><\/p>\n<p>Nun dr&uuml;cken Sie die Windows-Taste, geben als Suchbegriff <b>ODBC <\/b>ein und w&auml;hlen den Eintrag <b>ODBC-Datenquellen (32-Bit)<\/b>. Im Dialog <b>ODBC-Datenquellen-Administrator <\/b>aktivieren Sie die Registerkarte <b>System-DSN <\/b>und klicken dort auf die Schaltfl&auml;che <b>Hinzuf&uuml;gen <\/b>(siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.09.png\" alt=\"Anlegen der ODBC-Datenquelle\" width=\"599,593\" height=\"424,9639\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Anlegen der ODBC-Datenquelle<\/span><\/b><\/p>\n<p>Es folgt die Auswahl des ODBC-Treibers (siehe Bild 10). Hier haben Sie die Qual der Wahl. F&uuml;r den Zugriff auf SQL Server gibt es mehrere ODBC-Treiber. Abh&auml;ngig von der Version bietet er neben einer besseren Performance auch die Unterst&uuml;tzung neuer SQL Server-Funktionen, insbesondere im Bereich Security. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.10.png\" alt=\"Auswahl des ODBC-Treibers\" width=\"424,7115\" height=\"322,195\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Auswahl des ODBC-Treibers<\/span><\/b><\/p>\n<p>Aus diesem Grund sollten Sie die neueste Version verwenden. Aktuell ist dies <b>ODBC Driver 17 for SQL Server<\/b>. Falls Sie diesen Treiber in Ihrer Auswahl nicht sehen, m&uuml;ssen Sie ihn zun&auml;chst installieren. Sie finden den Treiber im Microsoft <b>Downloadbereich <\/b>unter dem Suchbegriff <b>ODBC Driver 17 for SQL Server<\/b>.<\/p>\n<p>Bitte verwenden Sie nicht die ODBC-Treiber SQL Server und SQL Server Native Client. Die Treiber werden von Microsoft weder weiterentwickelt noch gibt es entsprechende Fehlerbehebungen oder gar Sicherheitsupdates. <\/p>\n<p>Somit stellen diese beiden Treiber eine Sicherheitsl&uuml;cke dar. Mit einem veralteten Treiber ist die sichere Kommunikation zwischen Access-Frontend und SQL Server-Back-end nicht gew&auml;hrleistet. Unbefugte k&ouml;nnten heimlich Mith&ouml;ren oder gar Mitreden, im Sinne von Daten lesen, &auml;ndern und l&ouml;schen.<\/p>\n<p>Leider werden genau diese beiden Treiber in vielen Access und SQL Server-Applikationen eingesetzt. Der Grund hierf&uuml;r ist recht einfach. Die Treiber sind bereits vorinstalliert und m&uuml;ssen nicht extra auf den Rechnern der Anwender verteilt werden. <\/p>\n<p>Doch zur&uuml;ck zur Treiber-auswahl. Nachdem Sie den <b>ODBC Driver 17 for SQL Server <\/b>ausgew&auml;hlt haben, klicken Sie auf die Schaltfl&auml;che <b>Weiter<\/b> und im folgenden Dialog auf <b>Fertig <\/b>stellen.<\/p>\n<p>Jetzt beginnt die eigentliche Definition der ODBC-Datenquelle. Im ersten Schritt des Assistenten geben Sie dem Treiber die Bezeichnung <b>WaWi_SQL <\/b>und tragen dann im Eingabefeld Server den Namen Ihres SQL Servers ein.<\/p>\n<p>Die genaue Bezeichnung Ihres SQL Servers k&ouml;nnen Sie im SQL Server Management Studio ermitteln. &Ouml;ffnen Sie mit einem Klick auf die Schaltfl&auml;che <b>Abfrage <\/b>eine neue Registerkarte (siehe Bild 11) und geben Sie dort die folgende T-SQL-Anweisung ein:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.11.png\" alt=\"Der Name der SQL Server-Instanz\" width=\"649,559\" height=\"433,521\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Der Name der SQL Server-Instanz<\/span><\/b><\/p>\n<pre>SELECT @@Servername;<\/pre>\n<p>Mit einem Klick auf <b>Ausf&uuml;hren <\/b>erhalten Sie den Servernamen, den Sie kopieren und in das Eingabefeld <b>Server <\/b>der ODBC-Konfiguration einf&uuml;gen.<\/p>\n<p>Ein Klick auf <b>Weiter <\/b>f&uuml;hrt Sie zum n&auml;chsten Schritt. Hier wird die Anmeldung zum SQL Server festgelegt.<\/p>\n<p>Als erstes aktivieren Sie die Option <b>Mit SQL Server-Authentifizierung <\/b>anhand der vom Benutzer eingegebenen Anmelde-ID und des Kennworts. Danach geben Sie im Feld <b>Anmelde-ID <\/b>die Anmeldung <b>sa<\/b> sowie im Feld <b>Kennwort <\/b>das zugeh&ouml;rige Kennwort ein (siehe Bild 12). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.12.png\" alt=\"Anmeldung in der ODBC-Datenquelle\" width=\"549,6265\" height=\"449,6063\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Anmeldung in der ODBC-Datenquelle<\/span><\/b><\/p>\n<p>Im n&auml;chsten Schritt des Assistenten bestimmen Sie die SQL Server-Datenbank, zu der der ODBC-Treiber die Verbindung herstellen soll. Dazu aktivieren Sie die Option <b>Die Standarddatenbank &auml;ndern auf <\/b>und w&auml;hlen in der zugeh&ouml;rigen Auswahlliste die eben installierte Beispieldatenbank <b>WaWi_SQL<\/b> aus. <\/p>\n<p>Eigentlich legen Sie hier nur die Standarddatenbank f&uuml;r diese ODBC-Verbindung fest. Diese wird sp&auml;ter in den entsprechenden Auswahldialogen als Vorauswahl angeboten. Was nicht bedeutet, dass man bei der Anmeldung nicht auch eine andere Datenbank w&auml;hlen k&ouml;nnte. Doch dazu sp&auml;ter mehr.<\/p>\n<p>Die Auswahl der Standarddatenbank ist gleichzeitig auch ein Verbindungstest. K&ouml;nnen Sie die Datenbank nicht ausw&auml;hlen, haben Sie sich vielleicht bei der Eingabe des Kennworts vertippt. Dann m&uuml;ssen Sie im Assistenten einen Schritt zur&uuml;ck und dort das Kennwort erneut eingeben.<\/p>\n<p>Nach erfolgreicher Auswahl der Standarddatenbank klicken Sie erneut auf <b>Weiter<\/b>. Die nun angebotenen Optionen sind f&uuml;r das aktuelle Beispiel nicht relevant, weshalb Sie die Konfiguration der ODBC-Datenquelle mit einem Klick auf <b>Fertig stellen <\/b>abschlie&szlig;en. <\/p>\n<p>Es folgt noch ein weiterer Dialog, der Ihnen den Test der Datenquelle anbietet. Dieser Test ist nicht mehr erforderlich. Sie haben ihn mit der Auswahl der Standarddatenbank bereits erfolgreich durchgef&uuml;hrt. Ohne korrekte Zugangsdaten w&auml;re die Auswahl nicht m&ouml;glich gewesen. <\/p>\n<p>Speichern Sie die Konfiguration mit einem Klick auf <b>OK<\/b>. Der ODBC-Datenquellen-Administrator zeigt Ihnen die neu erstellte ODBC-Verbindung. Hiermit ist die Konfiguration nun wirklich abgeschlossen. Sie k&ouml;nnen den Dialog beenden. <\/p>\n<p>Als n&auml;chstes &ouml;ffnen Sie das Access-Frontend der Beispielapplikation <b>WaWi <\/b>und navigieren dort &uuml;ber <b>Externe Daten|Neue Datenquelle|Aus Datenbank <\/b>zum Eintrag <b>Aus SQL Server<\/b>.<\/p>\n<p>In dem folgenden Dialog <b>Externe Daten &#8211; ODBC-Datenbank <\/b>w&auml;hlen Sie die zweite Option namens <b>Erstellen Sie eine Verkn&uuml;pfung zur Datenquelle<\/b>, in dem Sie eine verkn&uuml;pfte Tabelle erstellen und klicken auf <b>Ok<\/b>. <\/p>\n<p>Jetzt sollen Sie die Datenquelle ausw&auml;hlen, die die Verbindung zur SQL Server-Datenbank herstellt. Sie finden Ihre eben angelegte ODBC-Datenquelle in der Registerkarte <b>Computerdatenquelle<\/b>. W&auml;hlen Sie die Datenquelle per Doppelklick aus.<\/p>\n<p>Zur&uuml;ck in Access wird als erstes die Eingabe des Kennworts zur Anmeldung <b>sa <\/b>von Ihnen erwartet (siehe Bild 13). Nach erfolgreicher Kennworteingabe d&uuml;rfen Sie im Dialog <b>Tabellen verkn&uuml;pfen <\/b>die Tabellen der SQL Server-Datenbank ausw&auml;hlen. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.13.png\" alt=\"Anmeldung in Access\" width=\"499,6607\" height=\"196,9617\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Anmeldung in Access<\/span><\/b><\/p>\n<p>Markieren Sie alle Tabellen mit dem Pr&auml;fix <b>dbo<\/b>. Hierbei handelt es sich um das Schema <b>dbo<\/b>. Was es mit den Schemata und insbesondere mit dem Schema <b>dbo <\/b>auf sich hat, erfahren Sie in einem der n&auml;chsten Artikel.<\/p>\n<p>Aktivieren Sie unbedingt noch die Option <b>Kennwort speichern<\/b>. Nur so wird das Kennwort in der Access-Datenbank gespeichert und Sie m&uuml;ssen es in Zukunft beim Start der Access-Applikation nicht mehr eingeben. <\/p>\n<p>Diese Vorgehensweise mag zwar eleganter sein, als dem Anwender das Kennwort mitzuteilen. Sie ist jedoch bei weitem nicht sicher. Das teilt Ihnen auch Access mit einer entsprechenden Meldung mit (siehe Bild 14). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.14.png\" alt=\"Sicherheitsabfrage beim Einbinden der Tabellen\" width=\"649,559\" height=\"111,1692\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Sicherheitsabfrage beim Einbinden der Tabellen<\/span><\/b><\/p>\n<p>Das Kennwort wird im Klartext in der ACCDB gespeichert und l&auml;sst sich recht einfach auslesen. Dazu &ouml;ffnen Sie die Access-Datenbank in einem Editor und suchen nach der Bezeichnung Ihrer ODBC-Datenquelle. Die Bezeichnung geben Sie dabei mit einer Leerstelle nach jedem Buchstaben ein. Eine Suche nach <b>W a W i _ S Q L<\/b> liefert Ihnen die Stelle der ODBC-Verbindungszeichenfolge mitsamt dem Kennwort. Ein Risiko, dass Sie f&uuml;r dieses Beispiel in Kauf nehmen und daher die Meldung mit einem Klick auf die Schaltfl&auml;che <b>Kennwort speichern <\/b>best&auml;tigen. Dies m&uuml;ssen Sie f&uuml;r jede gew&auml;hlte Tabelle wiederholen.<\/p>\n<p>Die Tabellen der SQL Server-Datenbank sind nun mitsamt dem Schemanamen eingebunden. Die urspr&uuml;nglich eingebundenen Tabellen des Access-Backends hatten den gleichen Namen, allerdings ohne den Zusatz <b>dbo_<\/b>. Jegliche Objekte des Access-Frontends mit direkter Bindung an die Tabellen verwenden jedoch die alten Bezeichnungen. <\/p>\n<p>Um ein funktionierendes Frontend zu erhalten, muss das Pr&auml;fix <b>dbo_ <\/b>aus den Bezeichnungen der eingebundenen Tabellen entfernt werden. Dazu verwenden Sie am besten die Funktion <b>fTabellenUmbenennen <\/b>im Modul <b>Tabellen<\/b>. Starten Sie die Funktion &uuml;ber den Direktbereich im VBA-Editor. <\/p>\n<p>Nachdem die Tabellen ihre urspr&uuml;nglichen Bezeichnungen wiederhaben, aktualisieren Sie noch die Verbindungen der beiden Pass Through-Abfragen. Dazu &ouml;ffnen Sie eine der beiden Abfragen im Entwurfsmodus und gehen dort zu den Eigenschaften. <\/p>\n<p>In der Option <b>ODBC-Verbindung <\/b>w&auml;hlen Sie Ihre eben erstellte ODBC-Datenquelle aus und geben im folgenden Anmeldedialog das Kennwort der Anmeldung <b>sa <\/b>ein. Es folgt ein erneuter Sicherheitshinweis (siehe Bild 15), den Sie mit einem Klick auf <b>Ja<\/b> best&auml;tigen. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.15.png\" alt=\"Sicherheitsabfrage beim Speichern der Pass Through-Abfrage\" width=\"349,7625\" height=\"112,3539\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Sicherheitsabfrage beim Speichern der Pass Through-Abfrage<\/span><\/b><\/p>\n<p>Diesen Vorgang m&uuml;ssen Sie bei jeder Pass Through-Abfrage wiederholen. Bei zwei Abfragen mag dies noch vertretbar sein, bei mehreren w&auml;re eine automatische Anpassung w&uuml;nschenswert. <\/p>\n<p>Hierzu gibt es die Funktion <b>fPassThroughVerbindungen <\/b>im Modul <b>Tabellen<\/b>. Sie ermittelt die ODBC-Verbindung der ersten per ODBC eingebundenen Tabelle und weist diese allen Pass Through-Abfragen zu. Der Clou hierbei ist, dass das gespeicherte Kennwort &uuml;ber diesen Weg ebenfalls zugewiesen wird.<\/p>\n<p>Mit der Zuordnung der ODBC-Datenquelle zu den Pass Through-Abfragen ist die Konfiguration der Verbindung zum SQL Server abgeschlossen. <\/p>\n<p>Das Access-Frontend arbeitet nun mit den Tabellen und mittels der Pass Through-Abfragen mit den Gespeicherten Prozeduren der SQL Server-Datenbank. Dabei m&uuml;ssen Sie das Kennwort f&uuml;r die Verbindung nicht mehr eingeben.<\/p>\n<p>Testen Sie es einfach. Schlie&szlig;en Sie die Access-Applikation und starten Sie sie direkt wieder. Die Schaltfl&auml;chen im Formular <b>Start <\/b>liefern Ihnen die entsprechenden Access-Formulare mit den Daten der SQL Server-Datenbank <b>WaWi_SQL<\/b>. Mit Ausnahme des Formulars Artikel, denn hier erfolgt der Datenzugriff per ADO.<\/p>\n<p><b>ADO und das Kennwort<\/b><\/p>\n<p>Mit ADO erstellen Sie eine Verbindung zu einer externen Datenquelle. Es spielt keine Rolle, ob Sie dabei auf eine Tabelle einer SQL Server-Datenbank oder auf eine lokale Tabelle des Access-Frontends zugreifen. F&uuml;r ADO handelt es sich dabei um ein externes Objekt. Im Gegensatz zu ODBC verwenden Sie f&uuml;r den Datenzugriff also keine lokalen Access-Tabellen und Pass Through-Abfragen, sondern direkt die Tabellen und Gespeicherten Prozeduren der SQL Server-Datenbank. <\/p>\n<p>Somit fehlt f&uuml;r den Datenzugriff eine entscheidende Komponente. Bei ODBC speichern Sie mit der ODBC-Datenquelle die Verbindungsdaten in den Eigenschaften des lokalen Access-Objekts und zus&auml;tzlich das Kennwort in der ACCDB. Diese M&ouml;glichkeit gibt es f&uuml;r einen Zugriff per ADO nicht. Zudem wird die Verbindung zum SQL Server nicht &uuml;ber einen ODBC-Treiber, sondern &uuml;ber einen OLE DB-Treiber hergestellt. Wie bei ODBC sollten Sie auch hier den neuesten Treiber verwenden. <\/p>\n<p>Microsoft bietet seit 2018 eine neue Version des OLE DB-Treibers an. Die aktuelle Version ist <b>Microsoft OLE DB Driver 18.3 for SQL Server<\/b>. Sie finden den Treiber im Microsoft-Downloadbereich unter dem Suchbegriff <b>Microsoft OLE DB Driver for SQL Server <\/b>oder mit dem K&uuml;rzel <b>MSOLEDBSQL<\/b>.<\/p>\n<p>Die Beispielapplikation <b>WaWi <\/b>verwendet diesen neuen OLE DB-Treiber. Sollten Sie den Treiber noch nicht installiert haben, holen Sie dies am besten noch vor dem Test des ADO-Beispiels nach.<\/p>\n<p>Die alten OLE DB-Treiber <b>SQL Server <\/b>und <b>SQL Server Native Client<\/b>, auch bekannt unter den K&uuml;rzeln <b>SQLOLEDB <\/b>und <b>SQLNCLI<\/b>, werden von Microsoft nicht mehr unterst&uuml;tzt. Es gibt weder eine Weiterentwicklung noch entsprechende Fehlerbehebungen oder gar Sicherheitsupdates. Denken Sie daran, Treiber ohne Herstellersupport stellen ein Sicherheitsrisiko dar. Aus diesem Grund sollten Sie keinen der beiden Treiber verwenden.<\/p>\n<p>Doch zur&uuml;ck zu den Verbindungsdaten. F&uuml;r jeden Datenzugriff per ADO wird der Name des SQL Servers und der Datenbank sowie die Anmeldung und das zugeh&ouml;rige Kennwort ben&ouml;tigt. Im Gegensatz zu ODBC fehlt jedoch die M&ouml;glichkeit, diese Informationen in Access direkt zu speichern. Da ist es naheliegend, die Anmeldedaten in einer eigenen lokalen Tabelle des Access-Frontends zu hinterlegen. Beim Datenzugriff werden die Daten ermittelt und zur Anmeldung am SQL Server verwendet.<\/p>\n<p>Die Tabelle wie auch das Kennwort sollten Sie vor dem Anwender verstecken. Hierzu maskieren Sie die entsprechende Spalte der Tabelle mit dem Eingabeformat <b>Kennwort<\/b>. Erg&auml;nzend dazu aktivieren Sie an der Tabelle die Eigenschaft <b>Ausgeblendet<\/b>. Die Tabelle ist dann im Navigationsbereich nicht mehr ohne Weiteres sichtbar. Zugegeben, diese Einstellungen sind keine gro&szlig;en H&uuml;rden. Aber es ist immer noch besser als nichts.<\/p>\n<p>Etwas effektiver ist die Definition der Tabelle als Systemtabelle. Systemtabellen sind schreibgesch&uuml;tzt und im Navigationsbereich nur sichtbar, wenn deren Anzeige explizit aktiviert ist. Das Frontend der Beispielapplikation enth&auml;lt die Tabelle <b>ADO<\/b>. Dort tragen Sie den Namen Ihres SQL Servers und das Kennwort der Anmeldung <b>sa <\/b>ein. Die Tabelle ist als Systemobjekt definiert und somit erst einmal nicht zu sehen. Um mit der Tabelle arbeiten zu k&ouml;nnen, m&uuml;ssen Sie zun&auml;chst die Anzeige der Systemobjekte aktivieren. Dazu klicken Sie mit der rechten Maustaste in den Kopf des Navigationsbereichs, w&auml;hlen dort den Eintrag <b>Navigationsoptionen<\/b> und aktivieren im folgenden Dialog die Option <b>Systemobjekte anzeigen<\/b>.<\/p>\n<p>Jetzt ist die Tabelle <b>ADO <\/b>zwar sichtbar, aber immer noch schreibgesch&uuml;tzt. Bevor Sie Ihre Verbindungsdaten in die Tabelle eintragen k&ouml;nnen, m&uuml;ssen Sie diese erst wieder als Benutzertabelle definieren. F&uuml;r diese &Auml;nderung gibt es die Funktion <b>fTabelleAlsSystemObjekt <\/b>im Modul <b>ADO<\/b>. &Ouml;ffnen Sie den VBA-Direktbereich und f&uuml;hren Sie die Funktion wie folgt aus:<\/p>\n<pre>fTabelleAlsSystemObjekt \"ADO\", <span style=\"color:blue;\">False<\/span> <\/pre>\n<p>Nun &ouml;ffnen Sie die Tabelle ADO und geben in dem Feld <b>Server <\/b>den Namen Ihres SQL Servers sowie in der Spalte <b>Kennwort <\/b>Ihr Kennwort zur Anmeldung <b>sa <\/b>ein.<\/p>\n<p>Danach sch&uuml;tzen Sie Ihre Eingaben vor unerlaubten &Auml;nderungen, indem Sie die Tabelle wieder als Systemtabelle definieren. Dazu f&uuml;hren Sie im VBA-Direktbereich diese Anweisung aus:<\/p>\n<pre>fTabelleAlsSystemObjekt \"ADO\", <span style=\"color:blue;\">True<\/span> <\/pre>\n<p>Wenn Sie jetzt noch die Tabelle im Navigationsbereich ausblenden, kann ein Anwender nicht ohne weiteres direkt auf die Verbindungsdaten zugreifen. Deaktivieren Sie dazu die Option <b>Systemobjekte anzeigen <\/b>im Dialog <b>Navigationsoptionen<\/b>. Die Daten der Tabelle ADO werden im Formular <b>Artikel <\/b>verwendet. Dort erfolgt der Datenzugriff im Ereignis <b>Beim &Ouml;ffnen<\/b>. Die hierzu ben&ouml;tigte Verbindungszeichenfolge erstellt die Funktion <b>fAdoPerTabelle <\/b>aus dem Modul <b>ADO<\/b>.<\/p>\n<p>Die Verbindungszeichenfolge kennen Sie vielleicht auch unter dem Namen <b>ConnectionString<\/b>. Diese enth&auml;lt den Namen des verwendeten Treibers, den Namen des SQL Servers und der Datenbank plus die Anmeldung und das zugeh&ouml;rige Kennwort.<\/p>\n<p>Mit einem Klick auf die Schaltfl&auml;che <b>Artikel <\/b>im Formular <b>Start <\/b>testen Sie Ihre Angaben in der Tabelle <b>ADO<\/b>. Bei korrekter Konfiguration sehen Sie die Daten der Tabelle <b>Artikel <\/b>aus der SQL Server-Datenbank <b>WaWi_SQL<\/b>.<\/p>\n<p>Soweit so gut. Sicher ist diese Vorgehensweise jedoch nicht. Das Kennwort k&ouml;nnen Sie recht einfach im VBA-Direktbereich mit folgendem Code auslesen: <\/p>\n<pre>DLookup(\"Kennwort\", \"ADO\")<\/pre>\n<p>Das Ergebnis ist das Kennwort im Klartext.<\/p>\n<p>Alternativ l&auml;sst sich die komplette Verbindungszeichenfolge als Konstante in einer VBA-Funktion hinterlegen. Die Beispieldatenbank zeigt diese Vorgehensweise in der Funktion <b>fAdoPerFunction<\/b>. Sie k&ouml;nnen dies einfach testen. &Ouml;ffnen Sie den VBA-Editor und wechseln Sie im Modul <b>ADO <\/b>zur Funktion <b>fAdoPerFunction<\/b>. Dort passen Sie die Verbindungszeichenfolge an Ihre Umgebung an. Dazu &uuml;berschreiben Sie den Eintrag <b>IHR SQL SERVER <\/b>mit Namen Ihres SQL Servers und beim Parameter <b>Password <\/b>ersetzen Sie <b>IHR KENNWORT <\/b>mit dem Kennwort Ihrer <b>sa<\/b>-Anmeldung.<\/p>\n<p>Nun &ouml;ffnen Sie den Quellcode des Formulars <b>Artikel <\/b>und gehen zum Ereignis <b>Form_Open<\/b>. Hier tauschen Sie bei der Definition der Verbindungszeichenfolge den Funktionsaufruf <b>fAdoPerTabelle <\/b>mit der Funktion <b>fAdoPerFunction <\/b>aus: <\/p>\n<pre>cn.ConnectionString = fAdoPerFunction<\/pre>\n<p>Speichern Sie Ihre &Auml;nderungen und wechseln Sie zur&uuml;ck zu Access. Dort klicken Sie im Formular <b>Start<\/b> auf die Schaltfl&auml;che Artikel. Als Ergebnis sehen Sie wieder die Daten der Tabelle <b>Artikel<\/b>. Das Sicherheitsniveau verbessert sich bei dieser Variante jedoch nicht. Ein Aufruf der Funktion im VBA-Direktbereich liefert die Verbindungszeichenfolge mit dem Kennwort im Klartext. <\/p>\n<p>Zudem speichern beide Varianten das Kennwort lesbar in der ACCDB. Um das Kennwort zu ermitteln, m&uuml;ssen Sie die ACCDB lediglich in einem Editor &ouml;ffnen und nach dem Namen Ihres SQL Servers suchen. Als Ergebnis sehen Sie das Kennwort in unmittelbarer N&auml;he zum SQL Server-Namen.<\/p>\n<p>Das l&auml;sst sich nat&uuml;rlich verhindern, indem Sie das Access-Frontend mit einem Datenbank-Kennwort verschl&uuml;sseln. In der letzten Ausgabe haben Sie diese und weitere M&ouml;glichkeiten kennengelernt, mit denen Sie das Access-Frontend soweit absichern, dass ein Anwender nicht ohne weiteres gesch&uuml;tzte Informationen auslesen kann. Sie haben dort aber auch erfahren, wie Sie auf Informationen zugreifen k&ouml;nnen, die per Datenbank-Kennwort verschl&uuml;sselt sind &#8211; und Sie haben Frau Bienlein kennengelernt.<\/p>\n<p><b>Der Fall Bienlein<\/b><\/p>\n<p>Frau Bienlein ist irritiert. Neuerdings haben ihre &Auml;nderungen in den Daten des Access-Backends keine Wirkung mehr. Irgendetwas scheint anders zu sein. Ob es an der neuen Version der Auftragsverwaltung liegt Die Kollegen der IT-Abteilung sprechen in letzter Zeit sehr oft von der neuen Auftragsverwaltung und diskutieren dabei immer &uuml;ber den omin&ouml;sen Begriff <b>SQL<\/b>.<\/p>\n<p>Leicht desillusioniert klickt sich Frau Bienlein in ihrer eigenen Access-Datenbank durch die Men&uuml;s. Sie braucht etwas Neues zum Entdecken. Da sieht sie den Eintrag <b>Neue Datenquellen<\/b>. Gut, den Eintrag kennt sie schon, schlie&szlig;lich hat sie hier&uuml;ber den Zugang zu den Tabellen der alten Auftragsverwaltung erhalten. Aber es gibt dort ja noch weitere Funktionen wie den Eintrag <b>Aus SQL Server<\/b>. Ob es das SQL ist, von dem die IT-Kollegen sprechen Sie klickt auf den Eintrag <b>Aus SQL Server <\/b>und sieht einen alten Bekannten, den Dialog <b>Externe Daten<\/b>. Die zweite Option mit der umst&auml;ndlichen Bezeichnung kennt sie bereits, weshalb sie die Option aktiviert und auf <b>Ok <\/b>klickt. <\/p>\n<p>Der n&auml;chste Dialog ist neu f&uuml;r Frau Bienlein. Er zeigt eine leere Registerkarte namens <b>Dateidatenquelle<\/b>. Etwas unsicher schaut sie in der Registerkarte <b>Computerdatenquelle <\/b>nach und findet dort den Eintrag <b>WaWi_SQL<\/b>. Das kommt ihr bekannt vor. <b>WaWi <\/b>ist der Name der Auftragsverwaltung, mit der sie t&auml;glich arbeitet, und da ist auch schon wieder dieses <b>SQL<\/b>. Sie f&uuml;hlt sich auf dem richtigen Weg und w&auml;hlt den Eintrag <b>WaWi_SQL <\/b>per Doppelklick aus. Es erscheint ein Anmeldedialog. Frau Bienlein f&uuml;hlt sich herausgefordert und gibt als erstes das ihr bekannte Kennwort der Auftragsverwaltung ein. Jetzt ist sie entt&auml;uscht. Das schon der erste Versuch funktioniert, h&auml;tte sie nicht erwartet.<\/p>\n<p>Tats&auml;chlich hat sich der Entwickler das Leben einfach gemacht und das bisher bekannte Kennwort weiterhin verwendet. Warum auch nicht, es ist ja dieselbe Applikation. Nein, dieser Gedanke ist nicht naheliegend. Er ist fahrl&auml;ssig!<\/p>\n<p>Durch seine Bequemlichkeit bietet der Entwickler Frau Bienlein eine offene Sicherheitsl&uuml;cke, die sie auch voller Tatendrang nutzt. Im Auswahldialog <b>Tabellen verkn&uuml;pfen <\/b>wird ihr unter anderem die Tabelle <b>Mitarbeiter <\/b>angeboten. Sie w&auml;hlt die Tabelle aus, aktiviert leicht am&uuml;siert die Option <b>Kennwort speichern <\/b>und klickt auf <b>OK<\/b>. Jetzt erh&auml;lt Frau Bienlein eine Meldung mit dem Hinweis, dass das Kennwort unverschl&uuml;sselt in der Datei gespeichert wird. Zuerst ist sie etwas irritiert von der Meldung, doch dann klickt sie auf die Schaltfl&auml;che <b>Kennwort speichern<\/b>. Nat&uuml;rlich soll das Kennwort gespeichert werden. Ob es dabei verschl&uuml;sselt wird, ist ihr herzlich egal.<\/p>\n<p>&#8222;Da bist du ja wieder.&#8220; denkt sich Frau Bienlein und &ouml;ffnet die Tabelle <b>Mitarbeiter<\/b>. Sie &auml;ndert Ihr Gehalt von 2.500 auf 2.550 Euro.<\/p>\n<p>Ein paar Tage sp&auml;ter hat sie wieder etwas Zeit und geht mit ihrer Access-Datenbank erneut auf Entdeckungsreise. Routiniert steuert sie den Men&uuml;punkt <b>Externe Daten|Neue Datenquellen|Aus Datenbank|Aus SQL Server <\/b>an, aktiviert im Dialog <b>Externe Daten <\/b>die zweite Option und w&auml;hlt anschlie&szlig;end die ODBC-Datenquelle <b>WaWi_SQL <\/b>aus. Wieder &ouml;ffnet sich der Anmeldedialog. Sie gibt das Kennwort ein und klickt auf <b>Optionen<\/b>. Der Anmeldedialog erweitert sich (siehe Bild 16). Neugierig &ouml;ffnet sie die Auswahlliste <b>Datenbank <\/b>und w&auml;hlt den Eintrag <b>WaWi_US<\/b> aus. Nach einem Klick auf <b>OK <\/b>erscheint wie erwartet eine Auswahl von Tabellen. Hier ist Frau Bienlein sehr interessiert an der Tabelle <b>Personal<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.16.png\" alt=\"Auswahl einer Datenbank\" width=\"549,6265\" height=\"662,517\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Auswahl einer Datenbank<\/span><\/b><\/p>\n<p>Nach der Auswahl ist die Tabelle im Navigationsbereich zu sehen. Ein Doppelklick &ouml;ffnet nicht nur die Tabelle, sondern er liefert Frau Bienlein auch die Informationen &uuml;ber Ihre amerikanischen Kollegen. Das sind jetzt nicht besonders spannende Informationen f&uuml;r Frau Bienlein.<\/p>\n<p>Aber f&uuml;r einen kleinen Spa&szlig; reicht es allemal. Sie sagt James King indirekt was sie von ihm h&auml;lt und &auml;ndert seinen Nachnamen in Looser, und da ihrer Meinung nach Frau Miller eh die ganze Arbeit macht, &uuml;berschreibt sie in der Spalte <b>Position <\/b>den Wert <b>Sales Manager <\/b>mit <b>CEO<\/b>. <\/p>\n<p>Die &Auml;nderungen machen in der amerikanischen Gesch&auml;ftsstelle schnell die Runde. Die US-Kollegen haben tats&auml;chlich viel Spa&szlig; mit den Anpassungen. Bis auf Robert King, der die Kollegen der Personalabteilung in Verdacht hat und dort auch seinen Unmut ausl&auml;sst.<\/p>\n<p>Frau Bienlein agiert mit der Anmeldung <b>sa<\/b>. Somit gibt es f&uuml;r sie keinerlei Einschr&auml;nkungen im SQL Server. Sie darf die Daten aller Datenbanken lesen und &auml;ndern. Sie darf noch weitaus mehr, wie sie ein paar Tage sp&auml;ter eindrucksvoll demonstriert.<\/p>\n<p>Im Internet hat Frau Bienlein von Pass Through-Abfragen gelesen. Ein spannendes Konzept, das sie so schnell wie m&ouml;glich testen m&ouml;chte. Dabei folgt sie der Anweisung eines Blog-Eintrags. In ihrer Access-Datenbank erstellt sie &uuml;ber <b>Erstellen|Abfrageentwurf <\/b>eine neue Abfrage. Das erscheinende Auswahlfenster <b>Tabelle anzeigen <\/b>schlie&szlig;t sie direkt wieder und klickt im Men&uuml; auf <b>Pass-Through<\/b>. In dem leeren Abfrageeditor gibt sie dann diese Anweisung ein:<\/p>\n<pre>SELECT * FROM Bewerber;<\/pre>\n<p>Sie klickt auf <b>Ausf&uuml;hren<\/b> und erh&auml;lt den ihr bekannten Auswahldialog der Datenquelle. Hier w&auml;hlt sie die Datenquelle <b>WaWi_SQL <\/b>aus und gibt im folgenden Dialog das Kennwort f&uuml;r die Anmeldung <b>sa <\/b>ein. Nach Eingabe des Kennworts zeigt die Pass Through-Abfrage die Daten der aktuellen Bewerber. Dabei handelt es sich bestimmt auch um Bewerber f&uuml;r die geplanten Stellen im Verkauf. Frau Bienlein mag keine Konkurrenz und wechselt zur SQL-Ansicht der Pass Through-Abfrage. Hier gibt sie die folgende Anweisung ein:<\/p>\n<pre>DROP TABLE Bewerber;<\/pre>\n<p>Erneut klickt sie auf <b>Ausf&uuml;hren<\/b>, w&auml;hlt die Datenquelle <b>WaWi_SQL <\/b>aus und gibt das Kennwort ein. Umsonst, denn sie erh&auml;lt lediglich die Meldung aus Bild 17. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.17.png\" alt=\"Hinweis beim Ausf&uuml;hren der Pass Through-Abfrage\" width=\"649,559\" height=\"110,8298\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: Hinweis beim Ausf&uuml;hren der Pass Through-Abfrage<\/span><\/b><\/p>\n<p>Entt&auml;uscht tippt sie wieder den Befehl <b>SELECT * FROM Bewerber <\/b>ein. Nach einem erneuten Klick auf <b>Ausf&uuml;hren<\/b>, der Auswahl der Datenquelle und der Eingabe des Kennworts erh&auml;lt sie keine Daten, sondern die Meldung, dass der Name <b>Bewerber <\/b>ung&uuml;ltig ist (siehe Bild 18). Die Tabelle wurde nicht gefunden. Das L&ouml;schen hat also doch funktioniert.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_04\/Abb. 2.18.png\" alt=\"Hinweis auf Tabelle Benutzer\" width=\"549,6265\" height=\"115,6606\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 18: Hinweis auf Tabelle Benutzer<\/span><\/b><\/p>\n<p>Eine Stunde sp&auml;ter kommt in der IT-Abteilung etwas Hektik auf. Die Personalabteilung hat angerufen und sich &uuml;ber einen Fehler in der Bewerberdatenbank beschwert. Laut Fehlermeldung wird die Tabelle <b>Bewerber <\/b>nicht gefunden. An fehlenden Zugriffsrechten kann es nicht liegen. Den Kollegen der IT-Abteilung ist durchaus bewusst, dass alle Mitarbeiter volle Rechte haben. Ein Blick in die Datenbank zeigt, dass die Tabelle tats&auml;chlich nicht mehr existiert. Es beginnt ein m&uuml;hsames Verfahren.<\/p>\n<p>Die Tabelle <b>Bewerber <\/b>wird neu angelegt und anschlie&szlig;end die letzte Datensicherung der Datenbank unter einem anderen Namen wiederhergestellt. Danach werden die Datens&auml;tze der Tabelle <b>Bewerber <\/b>der wiederhergestellten Datenbank in die neue Tabelle importiert. <\/p>\n<p>Ein aufwendiges Szenario, das umso &auml;rgerlicher ist, da Frau Bienlein nun wirklich keine Konkurrenz mag und die Tabelle <b>Bewerber <\/b>zwei Tage sp&auml;ter aufs Neue l&ouml;scht. &Uuml;berhaupt ist Frau Bienlein begeistert davon, wie einfach sie etwas l&ouml;schen kann. Deswegen erstellt sie sich eine weitere Pass Through-Abfrage und gibt dort den Befehl <b>DROP DATABASE WaWi_US <\/b>ein. Worauf es am sp&auml;ten Nachmittag in der IT-Abteilung extrem hektisch und laut wird.<\/p>\n<p><b>Fazit<\/b><\/p>\n<p>Der Fall Bienlein ist nat&uuml;rlich wie beim letzten Mal konstruiert. Eine derart dreiste Gehaltserh&ouml;hung sollte schnell auffallen. Alle anderen beschriebenen Aktionen sind jedoch durchaus denkbar. Die Schwachstelle in diesem Szenario ist die Verwendung der Anmeldung <b>sa<\/b>. Vielen Entwicklern ist diese Tatsache bekannt &#8211; und dennoch gibt es in der Realit&auml;t nicht wenige Access und SQL Server-Applikationen, in denen die Anmeldung <b>sa <\/b>recht naiv verwendet wird.<\/p>\n<p>Der Zugriffsschutz l&auml;sst sich bereits um einiges erh&ouml;hen, wenn das Kennwort alleine den Administratoren vorbehalten ist und es sich dabei um ein komplexes Kennwort handelt. Die Anwender sollten es weder kennen noch leicht erraten k&ouml;nnen. Nichtsdestotrotz bleibt es bei einer unsicheren Vorgehensweise. Ist das Kennwort f&uuml;r den Datenzugriff in der Access-Applikation gespeichert, kann es dort auch ausgelesen werden. Die M&ouml;glichkeiten hierzu wurden in diesem und im vorherigen Artikel beschrieben. Im n&auml;chsten Teil der Beitragsreihe lernen Sie eine Alternative zur Anmeldung <b>sa <\/b>kennen &#8211; und Sie erfahren, was Frau Bienlein davon h&auml;lt.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>WaWi.accdb<\/p>\n<p>WaWi_SQL.sql<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/4F57398D-4D9E-436C-B074-BE27666F63B4\/aiu_1246.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL Server bietet eine Vielzahl an M&ouml;glichkeiten und Funktionen im Bereich Security &#8211; von Zugriffsberechtigungen auf Objekte und Daten &uuml;ber verschiedene Verschl&uuml;sselungsmethoden bis hin zur Protokollierung von Datenzugriffen und Daten&auml;nderungen. Viele der Funktionen &auml;hneln sich und haben zum Teil die gleichen Auswirkungen. Da ist es nicht einfach einen &Uuml;berblick zu erhalten. Also von Anfang an. Als erstes lernen Sie die Sicherheitsarchitektur von SQL Server und die Anmeldung sa kennen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662020,66042020,44000022],"tags":[],"class_list":["post-55001246","post","type-post","status-publish","format-standard","hentry","category-662020","category-66042020","category-SQL_Server_und_Co"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server-Security - Teil 2: Zugriffsberechtigung - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server-Security - Teil 2: Zugriffsberechtigung\" \/>\n<meta property=\"og:description\" content=\"SQL Server bietet eine Vielzahl an M&ouml;glichkeiten und Funktionen im Bereich Security - von Zugriffsberechtigungen auf Objekte und Daten &uuml;ber verschiedene Verschl&uuml;sselungsmethoden bis hin zur Protokollierung von Datenzugriffen und Daten&auml;nderungen. Viele der Funktionen &auml;hneln sich und haben zum Teil die gleichen Auswirkungen. Da ist es nicht einfach einen &Uuml;berblick zu erhalten. Also von Anfang an. Als erstes lernen Sie die Sicherheitsarchitektur von SQL Server und die Anmeldung sa kennen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-05T10:25:28+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"33\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"SQL Server-Security &#8211; Teil 2: Zugriffsberechtigung\",\"datePublished\":\"2020-08-05T10:25:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/\"},\"wordCount\":6667,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/2c4cdf0ad1004f6ba5389c43674483d9\",\"articleSection\":[\"2020\",\"4\\\/2020\",\"SQL Server und Co.\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/\",\"name\":\"SQL Server-Security - Teil 2: Zugriffsberechtigung - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/2c4cdf0ad1004f6ba5389c43674483d9\",\"datePublished\":\"2020-08-05T10:25:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/2c4cdf0ad1004f6ba5389c43674483d9\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/2c4cdf0ad1004f6ba5389c43674483d9\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server-Security &#8211; Teil 2: Zugriffsberechtigung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server-Security - Teil 2: Zugriffsberechtigung - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/","og_locale":"de_DE","og_type":"article","og_title":"SQL Server-Security - Teil 2: Zugriffsberechtigung","og_description":"SQL Server bietet eine Vielzahl an M&ouml;glichkeiten und Funktionen im Bereich Security - von Zugriffsberechtigungen auf Objekte und Daten &uuml;ber verschiedene Verschl&uuml;sselungsmethoden bis hin zur Protokollierung von Datenzugriffen und Daten&auml;nderungen. Viele der Funktionen &auml;hneln sich und haben zum Teil die gleichen Auswirkungen. Da ist es nicht einfach einen &Uuml;berblick zu erhalten. Also von Anfang an. Als erstes lernen Sie die Sicherheitsarchitektur von SQL Server und die Anmeldung sa kennen.","og_url":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-08-05T10:25:28+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"33\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"SQL Server-Security &#8211; Teil 2: Zugriffsberechtigung","datePublished":"2020-08-05T10:25:28+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/"},"wordCount":6667,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9","articleSection":["2020","4\/2020","SQL Server und Co."],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/","url":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/","name":"SQL Server-Security - Teil 2: Zugriffsberechtigung - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9","datePublished":"2020-08-05T10:25:28+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/2c4cdf0ad1004f6ba5389c43674483d9"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/SQL_ServerSecurity__Teil_2_Zugriffsberechtigung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"SQL Server-Security &#8211; Teil 2: Zugriffsberechtigung"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001246"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001246\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}