{"id":55001238,"date":"2020-06-01T00:00:00","date_gmt":"2020-07-10T09:41:21","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1238"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/","title":{"rendered":"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Sch&uuml;tzen Sie Ihre Daten vor unerlaubtem Zugriff Wenn Sie es nicht tun, gibt es daf&uuml;r bestimmt Gr&uuml;nde. Nur sind es mit hoher Wahrscheinlichkeit keine guten Gr&uuml;nde. Nicht selten liegt es an fehlendem Fachwissen oder einer falschen Einsch&auml;tzung der Daten oder es ist schlicht und ergreifend Bequemlichkeit. Die Sache mit der Bequemlichkeit sollten Sie selbst hinterfragen, das Fachwissen vermittelt Ihnen dieser wie die noch folgenden Artikel der Serie &#8222;Access und SQL Server-Security&#8220;.<\/b><\/p>\n<p>&#8222;Die Daten dieser Datenbank sind nicht wichtig.&#8220; Diese Aussage basiert meist auf einer falschen Einsch&auml;tzung der Daten. Es gibt in Unternehmen keine unwichtigen Daten. Es mag zwar Daten geben, die nicht unternehmenskritisch sind, aber unwichtige Daten Hand aufs Herz, haben Sie Zeit oder gar Budget f&uuml;r unwichtige Daten In der Regel sind alle Daten eines Unternehmens relevant und somit auch vor fremden Zugriff zu sch&uuml;tzen. Dies hat inzwischen auch der Gesetzgeber verstanden. In den letzten Jahren sind verschiedene Gesetze in Kraft getreten, die entsprechende Zugriffskontrollen einfordern, sei es der Datenschutz nach der DSGVO und dem neuen BDSG oder das IT-Sicherheitsgesetz. <\/p>\n<p>Es ist schon erstaunlich, dass es Gesetze braucht, um Unternehmen darauf hinzuweisen, dass ihre Daten und somit ihr Wissen sch&uuml;tzenswert sind. Ob nun Produktionspl&auml;ne, Forschungsergebnisse, Rezepturen, Patente, erfolgreiche Marketingaktionen, Kundenanalysen, Forecasts etc., bei all diesen Informationen handelt es sich um Wissen &#8211; relevantes Wissen f&uuml;r den t&auml;glichen Betrieb und zur Sicherung des Wettbewerbsvorteils eines Unternehmens.<\/p>\n<p>Gelangen diese Daten in falsche H&auml;nde, stellt dies in vielen F&auml;llen ein indirektes oder gar direktes Risiko f&uuml;r das Unternehmen dar. Deshalb sollte jeder im Unternehmen, vom Gesch&auml;ftsf&uuml;hrer bis zum Angestellten, darauf achten, wer zu welchem Zweck Zugriff auf die Unternehmensdaten hat.<\/p>\n<p><b>Zugriffsschutz in Access<\/b><\/p>\n<p>Es sieht d&uuml;rftig aus. Access bietet als Zugriffsschutz lediglich das Datenbank-Kennwort. Zwar gibt es immer noch die M&ouml;glichkeit einer MDW-Datei, doch funktioniert diese nur mit dem veralteten Datenbankformat MDB.<\/p>\n<p>Das Datenbank-Kennwort verschl&uuml;sselt die Access-Datenbank. Dabei ist es empfehlenswert, ein Kennwort zu verwenden, das aus Buchstaben, Zahlen und Sonderzeichen besteht und mindestens zehn Zeichen lang ist. <\/p>\n<p>Es sollte aber auch nicht l&auml;nger als 19 Zeichen sein, wenn es sich bei der Datenbank um ein Backend handelt, deren Tabellen in ein Access-Frontend eingebunden werden. Zwar akzeptiert das Backend durchaus mehr als 19 Zeichen, jedoch wird ein solches Kennwort beim Einbinden der Tabellen in das Frontend mit der Meldung <b>Kein zul&auml;ssiges Kennwort<\/b> quittiert.<\/p>\n<p>Dem Datenbank-Kennwort wird nachgesagt, es sei einfach zu knacken. Das ist seit dem Wechsel von MDB nach ACCDB ab Access 2007 nicht mehr der Fall. Um das Kennwort zu ermitteln, bedarf es schon guter Crack-Tools mit der M&ouml;glichkeit von Brute-Force-Angriffen. Je l&auml;nger und komplexer ein Kennwort, umso h&ouml;her ist der Aufwand f&uuml;r einen solchen Angriff. <\/p>\n<p>Das Datenbank-Kennwort bietet also durchaus einen Zugriffsschutz. Dieser ist abh&auml;ngig von der L&auml;nge und der Komplexit&auml;t des Kennworts.<\/p>\n<p>Doch genug der Theorie. Jetzt wird die Backend-Datenbank der Beispiel-Applikation <b>WaWi <\/b>verschl&uuml;sselt. Dazu &ouml;ffnen Sie das Access-Backend <b>WaWi_BE.accdb <\/b>exklusiv (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.01.png\" alt=\"Exklusives &Ouml;ffnen einer Datenbank\" width=\"700\" height=\"409,0693\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Exklusives &Ouml;ffnen einer Datenbank<\/span><\/b><\/p>\n<p>Hier wechseln Sie zum Men&uuml;punkt <b>Datei <\/b>und klicken auf <b>Informationen<\/b>. Dort sehen Sie die Schaltfl&auml;che <b>Mit Kennwort verschl&uuml;sseln <\/b>(siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.02.png\" alt=\"Verschl&uuml;sseln einer Datenbank mit einem Kennwort\" width=\"499,6607\" height=\"102,0434\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Verschl&uuml;sseln einer Datenbank mit einem Kennwort<\/span><\/b><\/p>\n<p>Ein Klick auf diese Schaltfl&auml;che liefert Ihnen einen Dialog (siehe Bild 3), in dem Sie im ersten Eingabefeld Ihr Kennwort eingeben und dies mit einer erneuten Eingabe im zweiten Eingabefeld best&auml;tigen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.03.png\" alt=\"Festlegen des Kennworts\" width=\"299,7964\" height=\"156,988\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Festlegen des Kennworts<\/span><\/b><\/p>\n<p>Ihr Kennwort sollte den oben genannten Empfehlungen entsprechen. Um bei diesem und den folgenden Beispielen nicht immer m&uuml;hsam ein komplexes Kennwort einzugeben, tragen Sie als Kennwort den Begriff <b>unsicher<\/b> ein. Danach erhalten Sie die Meldung aus Bild 4, die Sie darauf hinweist, dass eine Sperrung auf Datensatzebene mit der Verschl&uuml;sselung nicht kompatibel ist. Sollte eine Sperrung auf Datensatzebene f&uuml;r Sie unabdingbar sein, k&ouml;nnen Sie die Verschl&uuml;sselung nicht nutzen. Best&auml;tigen Sie die Meldung, wird die Sperrung auf Datensatzebene in Zukunft ignoriert.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.04.png\" alt=\"Hinweise zum Verschl&uuml;sseln\" width=\"700\" height=\"103,073\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Hinweise zum Verschl&uuml;sseln<\/span><\/b><\/p>\n<p>Soweit so gut &#8211; die Access-Datenbank ist nun verschl&uuml;sselt. Ab jetzt m&uuml;ssen Sie dieses Kennwort immer eingeben, wenn Sie die Datenbank &ouml;ffnen. Testen Sie es einmal. Schlie&szlig;en Sie die Datenbank und &ouml;ffnen Sie sie direkt wieder. Ohne Kennworteingabe ist der Zugriff auf die Daten nicht mehr m&ouml;glich.<\/p>\n<p>Dies gilt auch f&uuml;r das Access-Frontend, mit dem die Daten der nun verschl&uuml;sselten Datenbank verarbeitet werden. Die Daten stehen im Frontend nur nach Eingabe des Kennworts zur Verf&uuml;gung. <\/p>\n<p>Es gibt eine gute Nachricht. Sie m&uuml;ssen das Kennwort nicht jedes Mal eingeben. Der Einfachheit halber l&auml;sst sich das Kennwort beim Einbinden der Tabellen angeben und wird ab dann bei jedem Datenzugriff verwendet.<\/p>\n<p>Leider ist der Tabellenverkn&uuml;pfungs-Manager dabei keine Hilfe. Sie m&uuml;ssen die eingebundenen Tabellen aus dem Frontend entfernen und neu einbinden. <\/p>\n<p>&Ouml;ffnen Sie also das Frontend der Beispiel-Applikation <b>WaWi <\/b>und entfernen Sie die eingebundenen Tabellen. Anschlie&szlig;end navigieren Sie &uuml;ber <b>Externe Daten|Neue Datenquelle|Aus Datenbank|Access <\/b>zum Dialog <b>Externe Daten<\/b>. Dort w&auml;hlen Sie &uuml;ber die Schaltfl&auml;che <b>Durchsuchen <\/b>die verschl&uuml;sselte Access-Datenbank aus und markieren die Option <b>Erstellen Sie eine Verkn&uuml;pfung zur Datenquelle, indem Sie eine verkn&uuml;pfte Tabelle erstellen <\/b>(siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.05.png\" alt=\"Erstellen einer Verkn&uuml;pfung\" width=\"649,559\" height=\"479,2262\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Erstellen einer Verkn&uuml;pfung<\/span><\/b><\/p>\n<p>Nach einem Klick auf <b>OK <\/b>werden Sie aufgefordert, das Datenbank-Kennwort einzugeben (siehe Bild 6). Anschlie&szlig;end w&auml;hlen Sie alle Tabellen aus und binden diese per <b>OK<\/b> ein.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.06.png\" alt=\"Abfrage des Kennworts\" width=\"299,7964\" height=\"117,4878\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Abfrage des Kennworts<\/span><\/b><\/p>\n<p>Die Eingabe des Kennworts ist eine einmalige Angelegenheit. Sie k&ouml;nnen dies einfach testen. Schlie&szlig;en Sie das Access-Frontend und &ouml;ffnen Sie es direkt wieder. Ein Kennwort m&uuml;ssen Sie dabei nicht eingeben, auch nicht beim &Ouml;ffnen einer Tabelle.<\/p>\n<p>Allerdings ist das Kennwort f&uuml;r den Datenzugriff erforderlich. Es muss also in irgendeiner Art und Weise hinterlegt sein. Doch wo ist das Kennwort gespeichert<\/p>\n<p>Um das herauszufinden, &ouml;ffnen Sie mit der Tastenkombination Strg + G den Direktbereich im VBA-Editor. Hier f&uuml;hren Sie folgende Anweisung aus:<\/p>\n<pre>  CurrentDb.TableDefs(\"Ansprechpartner\").Connect<\/pre>\n<p>Der Direktbereich zeigt Ihnen die <b>Connect<\/b>-Eigenschaft der eingebundenen Tabelle. Schon an zweiter Position ist das Kennwort zu sehen (siehe Bild 7). Es ist also kein Hexenwerk, das Datenbank-Kennwort einer verschl&uuml;sselten Datenbank zu ermitteln. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.07.png\" alt=\"Kennwort ermitteln per Direktbereich\" width=\"649,559\" height=\"77,43085\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Kennwort ermitteln per Direktbereich<\/span><\/b><\/p>\n<p>Das Auslesen des Kennworts l&auml;sst sich vermeiden, indem Sie auch das Access-Frontend verschl&uuml;sseln. Also &ouml;ffnen Sie das Access-Frontend exklusiv, wechseln &uuml;ber das Men&uuml; <b>Datei <\/b>zu <b>Informationen <\/b>und klicken dort auf die Schaltfl&auml;che <b>Mit Kennwort verschl&uuml;sseln<\/b>. <\/p>\n<p>Als Kennwort geben Sie nat&uuml;rlich nicht das gleiche wie beim Backend an. Verwenden Sie ein anderes sicheres Kennwort, das beim Frontend auch mehr als 19 Zeichen haben darf. F&uuml;r dieses Beispiel kann es gerne wieder etwas Einfaches sein. Wie w&auml;re es mit dem Kennwort <b>sicher<\/b> <\/p>\n<p>Es folgt der bereits bekannte Hinweis, dass die Datensatzsperre in Zukunft ignoriert wird. Mit Best&auml;tigen dieser Meldung ist nun auch das Frontend verschl&uuml;sselt. Dies k&ouml;nnen Sie testen, indem Sie das Frontend schlie&szlig;en und es direkt wieder &ouml;ffnen. Als erstes wird von Ihnen die Eingabe des Kennworts verlangt.<\/p>\n<p>Erst nach der Kennworteingabe l&auml;sst das Frontend den Zugriff auf das Startformular, die Access-Objekte und die eingebundenen Tabellen zu. Dieses Kennwort m&uuml;ssen Sie ab jetzt bei jedem Start des Frontends angeben. Aber nicht nur Sie, sondern jeder Anwender, der mit dieser Access-Applikation arbeitet. <\/p>\n<p>Aus diesem Grund ist es wichtig, Frontend und Backend der Access-Applikation mit unterschiedlichen Kennw&ouml;rtern zu verschl&uuml;sseln. Andernfalls w&auml;re es f&uuml;r den Anwender recht einfach, das Access-Backend zu &ouml;ffnen. Er muss dort nur das ihm bekannte Kennwort vom Frontend eingeben.<\/p>\n<p><b>Ein sicheres Kennwort <\/b><\/p>\n<p>Das von Ihnen gew&auml;hlte Datenbank-Kennwort sollte den oben angef&uuml;hrten Regeln entsprechen. Allerdings muss es sich der Anwender auch merken k&ouml;nnen. Genau hier beginnt das Dilemma. Wer kann sich schon an ein komplexes Kennwort erinnern Die L&ouml;sung ist nicht selten eine Notiz am Bildschirm oder unter der Tastatur.<\/p>\n<p>Dabei ist die Vergabe eines komplexen Kennworts recht einfach. Denken Sie sich einen Satz mit einer Zahl aus und nehmen Sie davon die Anfangsbuchstaben und die Satzzeichen. Fertig ist das sichere Kennwort. <\/p>\n<p>Der Anwender merkt sich einen Satz wie <b>Seit 2020 ist die Auftragsverarbeitung mit einem Kennwort gesch&uuml;tzt!<\/b> und gibt als Kennwort <b>S2020idAmeKg!<\/b> ein. Nat&uuml;rlich verwenden Sie bitte nicht dieses Beispiel als Ihr Kennwort. Denken Sie sich einen Satz aus, mit dem die Anwender etwas anfangen k&ouml;nnen. <\/p>\n<p>Nimmt man es ganz genau, besitzt ein solch erstelltes Kennwort zwar einen hohen Sicherheitsgrad, es gilt dennoch als unsicher. Ein sicheres Kennwort ergibt sich aus der Zuf&auml;lligkeit. Es sollte weder etwas mit der Applikation noch mit den Benutzern noch mit irgendetwas zu tun haben. Sichere Kennw&ouml;rter erstellen Sie am besten mit einem Password-Generator. <\/p>\n<p><!--30percent--><\/p>\n<p>Ein generiertes Kennwort kann sich aber kein Mensch merken. Schon sind Sie wieder beim oben beschriebenen Dilemma und das Kennwort landet fr&uuml;her oder sp&auml;ter als Notiz auf einem Zettel. So wird auch das sicherste Kennwort untauglich, ist es doch leicht zug&auml;nglich f&uuml;r jedermann.<\/p>\n<p>Dann doch lieber ein Kennwort, das bereits einen hohen Sicherheitsgrad aufweist und das sich die Anwender merken k&ouml;nnen.  <\/p>\n<p>Auch sichere Kennw&ouml;rter sollten Sie in regelm&auml;&szlig;igen Abst&auml;nden &auml;ndern. Kennt ein Unbefugter das Kennwort, darf er sich nach der &Auml;nderung erneut die M&uuml;he machen, an das Kennwort heranzukommen.<\/p>\n<p><b>Access-Funktionen unterbinden<\/b><\/p>\n<p>Nach Eingabe des Datenbank-Kennworts stehen dem Anwender alle ihm erlaubten Access-Funktionen zur Verf&uuml;gung. Er kann zum Beispiel den VBA-Editor &ouml;ffnen und dort mittels der <b>Connect<\/b>-Eigenschaft einer Tabelle das Kennwort des Access-Backends auslesen.<\/p>\n<p>Aus diesem Grund darf der Zugriff auf den VBA-Editor nicht ohne weiteres m&ouml;glich sein. Um dies zu erreichen, ersetzen Sie die Standard-Ribbons mit eigenen Ribbons und blenden &uuml;ber die Access-Optionen den Navigationsbereich aus (siehe Bild 8). Diese beiden Aktionen verbergen allerdings nur die M&ouml;glichkeiten zum &Ouml;ffnen des VBA-Editors. Mit der Tastenkombination <b>Alt + F11 <\/b>l&auml;sst er sich weiterhin &ouml;ffnen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.08.png\" alt=\"Navigationsbereich ausblenden\" width=\"649,559\" height=\"470,5138\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Navigationsbereich ausblenden<\/span><\/b><\/p>\n<p><b>Kennwort f&uuml;r VBA<\/b><\/p>\n<p>Als weitere Ma&szlig;nahme sch&uuml;tzen Sie das VBA-Projekt mit einem Kennwort. Dieses Kennwort m&uuml;ssen Sie dann jedes Mal eingeben, wenn Sie Ihren VBA-Quellcode lesen oder &auml;ndern m&ouml;chten. <\/p>\n<p>Dazu wechseln Sie zum VBA-Editor und w&auml;hlen im Men&uuml; <b>Extras <\/b>den Eintrag <b>Eigenschaften von<\/b>. In dem folgenden Dialog gehen Sie zur Registerkarte <b>Schutz<\/b>, aktivieren die Option <b>Projekt f&uuml;r die Anzeige sperren <\/b>und geben ein neues sicheres Kennwort in die beiden Eingabefelder ein (siehe Bild 9). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.09.png\" alt=\"Sch&uuml;tzen des VBA-Projekts\" width=\"424,7115\" height=\"388,806\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Sch&uuml;tzen des VBA-Projekts<\/span><\/b><\/p>\n<p>Best&auml;tigen Sie die Eingabe mit <b>OK<\/b> und schlie&szlig;en Sie Access. &Ouml;ffnen Sie die Access-Datenbank wieder und wechseln Sie nach Eingabe des Datenbank-Kennworts zum VBA-Editor. Jetzt wird das Kennwort zum Schutz des VBA-Projekts abgefragt. Erst nach der Eingabe sehen Sie den VBA-Quellcode.<\/p>\n<p>Sicher ist der Kennwortschutz des VBA-Projekts jedoch nur in Verbindung mit einem Datenbank-Kennwort. Durch das Datenbank-Kennwort ist der komplette Inhalt der Access-Datenbank verschl&uuml;sselt. <\/p>\n<p>Bei einer unverschl&uuml;sselten Datenbank l&auml;sst sich das VBA-Kennwort recht einfach aushebeln. Dazu &ouml;ffnen Sie die Access-Datenbank in einem Hex-Editor, suchen dort nach <b>DPB<\/b> und ersetzen <b>B<\/b> mit einem x-beliebigen Buchstaben. Speichern Sie die &Auml;nderung und schlie&szlig;en Sie den Hex-Editor. Danach &ouml;ffnen Sie die Access-Datenbank regul&auml;r mit Access.<\/p>\n<p>Beim &Ouml;ffnen erhalten Sie eine Fehlermeldung, die Sie mit <b>Ja <\/b>best&auml;tigen. Jetzt wechseln Sie zum VBA-Editor. Sie erhalten einige Fehlermeldungen, die Sie alle mit <b>OK <\/b>wegklicken. Anschlie&szlig;end vergeben Sie &uuml;ber den herk&ouml;mmlichen Weg ein neues VBA-Kennwort. Danach steht Ihnen der Quellcode zur Verf&uuml;gung.<\/p>\n<p>Diese Vorgehensweise ist bei einer verschl&uuml;sselten Datenbank nicht m&ouml;glich. Der Eintrag <b>DBP<\/b> existiert dort nicht als Klartext. Folglich k&ouml;nnen Sie ihn weder finden noch &auml;ndern.<\/p>\n<p><b>Access-Spezialtasten deaktivieren<\/b><\/p>\n<p>Das Kennwort des VBA-Projekts mag zwar den Zugriffsschutz der Datenbank erh&ouml;hen, es verhindert jedoch nicht das Auslesen der <b>Connect<\/b>-Eigenschaft.<\/p>\n<p>Mit der Tastenkombination <b>Strg + G <\/b>l&auml;sst sich in Access die Direkteingabe des VBA-Editors &ouml;ffnen. Das VBA-Kennwort wird dabei nicht abgefragt. Das Auslesen der <b>Connect<\/b>-Eigenschaft ist also weiterhin m&ouml;glich.<\/p>\n<p>Aus diesem Grund sollten Sie auch die Access-Spezialtasten deaktivieren. Die entsprechende Eigenschaft finden Sie in den Access-Optionen unter <b>Aktuelle Datenbank <\/b>(siehe Bild 10). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.10.png\" alt=\"Access-Spezialtasten deaktivieren\" width=\"649,559\" height=\"369,409\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Access-Spezialtasten deaktivieren<\/span><\/b><\/p>\n<p>Am besten verhindern Sie gleich noch den Start von Access mit gedr&uuml;ckter Umschalt-Taste. Dies erreichen Sie durch Ausschalten der Datenbankeigenschaft <b>AllowByPassKey<\/b>.<\/p>\n<p>Hierzu erstellen Sie eine VBA-Funktion mit diesen Zeilen:<\/p>\n<pre><span style=\"color:blue;\">Sub <\/span>EnableShift(blnFlag<span style=\"color:blue;\"> As Boolean<\/span>)\r\n     <span style=\"color:blue;\">On Error GoTo<\/span> Error_EnableShift\r\n     <span style=\"color:blue;\">Dim <\/span>db<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Dim <\/span>prp<span style=\"color:blue;\"> As <\/span>DAO.Property\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     'Property mit &uuml;bergebenem Parameter belegen\r\n     db.Properties!AllowBypassKey = blnFlag\r\nExit_EnableShift:\r\n     <span style=\"color:blue;\">Set<\/span> prp = Nothing\r\n     <span style=\"color:blue;\">Exit Sub<\/span>\r\nError_EnableShift:\r\n     'Property erzeugen, falls noch nicht vorhanden\r\n     <span style=\"color:blue;\">If <\/span>Err = 3270<span style=\"color:blue;\"> Then<\/span>\r\n         <span style=\"color:blue;\">Set<\/span> prp = db.CreateProperty(\"AllowBypassKey\",  dbBoolean, blnFlag)\r\n         db.Properties.Append prp\r\n         Resume <span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Else<\/span>\r\n         <span style=\"color:blue;\">MsgBox<\/span> \"Ausnahme Nr. \" & Str(Err.Number) & \" \"  & Err.Description\r\n         Resume Exit_EnableShift\r\n     <span style=\"color:blue;\">End If<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>(Quelle: http:\/\/www.donkarl.comFAQ1.8)<\/p>\n<p>Der folgende Aufruf deaktiviert die Datenbankeigenschaft und verhindert dadurch die Funktion der Umschalt-Taste:<\/p>\n<pre>EnableShift <span style=\"color:blue;\">False<\/span><\/pre>\n<p>Sie k&ouml;nnen den Code per Direkteingabe oder mit einer weiteren VBA-Funktion ausf&uuml;hren. Das Ergebnis ist dasselbe. Das Dr&uuml;cken der Umschalt-Taste hat keinerlei Auswirkung beim Start der Access-Applikation.<\/p>\n<p>Das gilt f&uuml;r alle Benutzer. Auch f&uuml;r Sie, weshalb Sie vor dem Neustart von Access noch eine M&ouml;glichkeit einbauen sollten, &uuml;ber die sich die Umschalt-Taste wieder aktivieren l&auml;sst. Dies kann zum Beispiel eine versteckte Schaltfl&auml;che sein, die per Doppelklick die Anweisung <b>EnableShift True<\/b> ausf&uuml;hrt.<\/p>\n<p>Die Funktionalit&auml;t der Umschalt-Taste ist dann wieder aktiv, f&uuml;r Sie und f&uuml;r alle anderen Benutzer. Am besten sperren Sie die Umschalt-Taste immer unmittelbar nachdem Sie den Zugang zu den Access-Spezialtasten und zum Navigationsbereich nicht mehr ben&ouml;tigen.<\/p>\n<p>Wobei das Sperren der Umschalt-Taste eigentlich kein ausreichender Schutz ist, l&auml;sst sich die Datenbankeigenschaft <b>AllowByPassKey <\/b>doch leicht von au&szlig;en &auml;ndern. Dazu legen Sie eine neue Access-Datenbank an und erstellen dort ein VBA-Modul mit der Funktion aus Listing 1.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>sAllowByPassKey()\r\n     <span style=\"color:blue;\">Dim <\/span>wrkAcc<span style=\"color:blue;\"> As <\/span>Workspace\r\n     <span style=\"color:blue;\">Dim <\/span>dbsWawi<span style=\"color:blue;\"> As <\/span>DAO.Database\r\n     <span style=\"color:blue;\">Set<\/span> wrkAcc = CreateWorkspace(\"\", \"admin\", \"\", dbUseJet)\r\n     <span style=\"color:blue;\">Set<\/span> dbsWawi = wrkAcc.OpenDatabase(\"D:WaWi.accdb\", False, False, \"MS Access;PWD=sicher\")\r\n     'Ohne Kennwort\r\n     '<span style=\"color:blue;\">Set<\/span> dbsWawi = wrkAcc.OpenDatabase(\"D:WaWi.accdb\", <span style=\"color:blue;\">True<\/span>)\r\n     dbsWawi.Properties(\"AllowBypasskey\") = <span style=\"color:blue;\">True<\/span>\r\n     dbsWawi.Close\r\n     wrkAcc.Close\r\n     <span style=\"color:blue;\">Set<\/span> dbsWawi = Nothing\r\n     <span style=\"color:blue;\">Set<\/span> wrkAcc = Nothing\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Umschalt-Taste von au&szlig;en wieder zulassen<\/span><\/b><\/p>\n<p>Die Funktion &ouml;ffnet per <b>OpenDataBase <\/b>die gesch&uuml;tzte Datenbank und &auml;ndert den Wert der Eigenschaft <b>AllowByPassKey <\/b>in <b>True<\/b>. Schon ist der Start der Access-Applikation mit gedr&uuml;ckter Umschalt-Taste wieder m&ouml;glich.<\/p>\n<p>Sie sehen, mit dem Verschl&uuml;sseln der Access-Datenbank alleine ist es nicht getan. Es gibt einige Einstellungen zu beachten, die einen unbefugten Zugriff auf das Datenbank-Kennwort und somit auf die Daten erschwert. <\/p>\n<p><b>Zugriffsschutz innerhalb der Access-Applikation<\/b><\/p>\n<p>Alles in allem bietet das Datenbank-Kennwort einen guten Zugriffsschutz. Dem Anwender wird nur nach Eingabe des korrekten Kennworts der Zugang zu den Daten gestattet. <\/p>\n<p>Danach gibt es f&uuml;r ihn keine Einschr&auml;nkung mehr. Er hat den vollen Zugriff auf alle Daten. Nun kann es aber durchaus notwendig sein, dass ein Anwender nicht alle Daten der Datenbank sehen oder gar &auml;ndern darf. <\/p>\n<p>So auch in der Beispielapplikation <b>WaWi<\/b>. Diese beinhaltet neben einer Auftragserfassung eine kleine Personalverwaltung. Nat&uuml;rlich sollen die Mitarbeiterinnen und Mitarbeiter des Verkaufs die Daten der Personalverwaltung nicht lesen oder gar &auml;ndern k&ouml;nnen.<\/p>\n<p>Es ist somit auch innerhalb der Access-Applikation ein Zugriffsschutz zu erstellen &#8211; abh&auml;ngig von den Anwendern und deren Aufgabengebiet.<\/p>\n<p>Dies wird oft und gerne &uuml;ber eine Formularsteuerung realisiert. Abh&auml;ngig vom angemeldeten Anwender werden Men&uuml;punkte und Schaltfl&auml;chen angezeigt oder ausgeblendet. In der Beispielapplikation findet dies im Start-Formular statt. Dort wird im Ereignis <b>Beim &Ouml;ffnen <\/b>die Funktion <b>fBerechtigungen <\/b>ausgef&uuml;hrt.<\/p>\n<p>Als erstes ermittelt die Funktion das Benutzerkonto des angemeldeten Anwenders. Dazu verwendet sie eine weitere Funktion namens <b>fOSUserName<\/b>. Diese von Dev Ashish entwickelte Funktion kennen Sie vielleicht schon. Sie liefert Ihnen den Namen des verwendeten Benutzerkontos (siehe Bild 11). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.11.png\" alt=\"Benutzername ermitteln per VBA\" width=\"649,559\" height=\"417,4979\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Benutzername ermitteln per VBA<\/span><\/b><\/p>\n<p>Dabei m&uuml;ssen Sie beachten, dass Sie die richtige Version verwenden. Es gibt eine Version f&uuml;r die 32-Bit-Variante von Access und eine weitere f&uuml;r die 64-Bit-Variante.<\/p>\n<p>War die 64-Bit-Variante fr&uuml;her eher selten, ist sie bei Installationen &uuml;ber Office365 immer h&auml;ufiger anzutreffen.<\/p>\n<p>Am besten ersetzen Sie die Zeile<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>Declare Function apiGetUserName Lib  \"advapi32.dll\" Alias \"GetUserNameA\" (ByVal  lpBuffer<span style=\"color:blue;\"> As String<\/span>, nSize<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Long<\/span><\/pre>\n<p>mit dieser Zeile:<\/p>\n<pre><span style=\"color:blue;\">Private <\/span>Declare PtrSafe Function apiGetUserName Lib  \"advapi32.dll\" Alias \"GetUserNameA\" (ByVal lpBuffer <span style=\"color:blue;\"> As String<\/span>, nSize<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Long<\/span><\/pre>\n<p>Ausschlaggebend hierbei ist das Schl&uuml;sselwort <b>PtrSafe<\/b>. Nur mit diesem Schl&uuml;sselwort wird die Deklaration in den 64-Bit-Varianten von Office akzeptiert. <\/p>\n<p>Das Schl&uuml;sselwort gibt erst seit Access 2010. M&ouml;chten Sie den Code auch in einer &auml;lteren Version verwenden, sollten Sie beide Varianten ber&uuml;cksichtigen. Dies erreichen Sie mit einer bedingten Kompilierung.<\/p>\n<p>Die Compiler-Konstante <b>VBA7 <\/b>liefert dabei den Wert <b>True<\/b>, wenn es sich um eine 64-Bit-Umgebung handelt. Der Quellcode sieht dann wie folgt aus:<\/p>\n<pre>#If VBA7 Then\r\n<span style=\"color:blue;\">Private <\/span>Declare PtrSafe Function apiGetUserName Lib  \"advapi32.dll\" Alias \"GetUserNameA\" (ByVal lpBuffer <span style=\"color:blue;\"> As String<\/span>, nSize<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Long<\/span>\r\n#Else\r\n<span style=\"color:blue;\">Private <\/span>Declare Function apiGetUserName Lib  \"advapi32.dll\" Alias \"GetUserNameA\" (ByVal lpBuffer <span style=\"color:blue;\"> As String<\/span>, nSize<span style=\"color:blue;\"> As Long<\/span>)<span style=\"color:blue;\"> As Long<\/span>\r\n#End If<\/pre>\n<p>Der Rest der Funktion <b>fBerechtigungen <\/b>ist selbsterkl&auml;rend. Abh&auml;ngig vom ermittelten Anwender werden Schaltfl&auml;chen ein- oder ausgeblendet, der Name der Applikation mit dem Namen des Anwenders erg&auml;nzt und die Hintergrundfarbe ge&auml;ndert.<\/p>\n<p>Frau Bienlein als Verk&auml;uferin sieht nach einer erfolgreichen Anmeldung die Access-Applikation wie in Bild 12.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.12.png\" alt=\"Die Anwendung aus Sicht einer Verk&auml;uferin ...\" width=\"599,593\" height=\"431,2556\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Die Anwendung aus Sicht einer Verk&auml;uferin &#8230;<\/span><\/b><\/p>\n<p>Dagegen erh&auml;lt die Personalchefin Frau Stromberg die Ansicht aus Bild 13. <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_03\/Abb 1.13.png\" alt=\"... und aus Sicht der Personalchefin.\" width=\"549,6265\" height=\"401,507\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: &#8230; und aus Sicht der Personalchefin.<\/span><\/b><\/p>\n<p>Um diese Auswirkungen bei beiden Anwendern zu testen, legen Sie sich die Windows-Benutzer <b>Stromberg <\/b>und <b>Bienlein <\/b>an. Anschlie&szlig;end starten Sie Access als anderer Benutzer. Dazu gibt es mehrere M&ouml;glichkeiten. Die einfachste funktioniert &uuml;ber eine Verkn&uuml;pfung zu Access. <\/p>\n<p>Erstellen Sie auf Ihrem Desktop eine Verkn&uuml;pfung zur Datei <b>msaccess.exe<\/b>. Danach klicken Sie die Verkn&uuml;pfung mit der rechten Maustaste und gedr&uuml;ckter Umschalt-Taste an. In dem Kontextmen&uuml; w&auml;hlen Sie <b>Als anderer Benutzer ausf&uuml;hren <\/b>und tragen in dem folgenden Dialog den Benutzernamen und das zugeh&ouml;rige Kennwort ein. <\/p>\n<p>Access wird nun im Kontext des angegebenen Benutzers und somit mit dessen Rechten gestartet. &Ouml;ffnen Sie in Access das Frontend der Beispieldatenbank und geben Sie das Datenbank-Kennwort ein.<\/p>\n<p>Wiederholen Sie den Vorgang mit dem zweiten Benutzer. Sie sehen nun zwei Access-Applikationen in unterschiedlichen Farben und mit abweichenden Schaltfl&auml;chen.<\/p>\n<p>Mit der Formularsteuerung und den oben beschriebenen Ma&szlig;nahmen zum Schutz der Access-Applikation durch Deaktivieren der Access-Spezialtasten, Ausblenden des Navigationsbereichs und Verwenden eigener Ribbons erreichen Sie einen hohen Zugriffsschutz. Man f&uuml;hlt sich nach all diesem Aufwand doch recht sicher. Wie sicher diese Ma&szlig;nahmen tats&auml;chlich sind, zeigt der Fall Bienlein.<\/p>\n<p><b>Der Fall Bienlein<\/b><\/p>\n<p>Aufgrund der gesch&uuml;tzten Anwendungsoberfl&auml;che und der Formularsteuerung in der Access-Applikation <b>WaWi <\/b>ist es Frau Bienlein nicht m&ouml;glich, auf die Daten des Personalbereichs zuzugreifen. Dies ist jedoch nur ein vermeintlicher Schutz. <\/p>\n<p>Mit Frau Bienlein arbeitet im Verkauf nicht nur eine gute Verk&auml;uferin, sie ist auch sehr an Access interessiert und hat vor Kurzem aus privatem Interesse einen Access-Kurs besucht. Und da auf Ihrem Arbeitsrechner Access in der Vollversion und nicht als Runtime-Version installiert ist, nutzt Sie Access auch gerne w&auml;hrend der Arbeitszeit. <\/p>\n<p>Sie erstellt sich eine neue Datenbank und findet gerade heute den Men&uuml;punkt <b>Externe Daten <\/b>sehr interessant. Neugierig schaut sie sich die M&ouml;glichkeiten an und entscheidet sich f&uuml;r den Eintrag <b>Aus Datenbanken <\/b>und dort wiederum f&uuml;r den Eintrag <b>Access<\/b>.<\/p>\n<p>Nach einem Klick auf <b>Durchsuchen <\/b>navigiert sie etwas ziellos auf den standardm&auml;&szlig;ig verbundenen Netzwerk-Laufwerken umher, bis sie eine Datenbank namens <b>WaWi_BE <\/b>findet. Das kommt ihr bekannt vor, ist der Name doch &auml;hnlich der Auftragsverwaltung, mit der sie jeden Tag arbeitet.<\/p>\n<p>Also w&auml;hlt sie die Datenbank aus und da sie sich unter der Option <b>Erstellen Sie eine Verkn&uuml;pfung zur Datenquelle, indem Sie eine verkn&uuml;pfte Tabelle erstellen <\/b>nun rein gar nichts vorstellen kann, aktiviert sie diese und klickt erwartungsvoll auf <b>OK<\/b>.<\/p>\n<p>Jetzt wird es f&uuml;r Frau Bienlein spannend. Sie muss ein Datenbank-Kennwort eingeben. Als erstes tippt sie das Kennwort ein, das Sie t&auml;glich bei der Auftragsverwaltung eingibt. Mit Erfolg, denn der Programmierer der Access-Applikation hat sich nicht die M&uuml;he gemacht, f&uuml;r die Verschl&uuml;sselung des Frontends und des Backends unterschiedliche Kennw&ouml;rter zu verwenden.<\/p>\n<p>Frau Bienlein sieht alle Tabellen der Backend-Datenbank und ist dabei sehr interessiert an der Tabelle <b>Mitarbeiter<\/b>. Sie markiert die Tabelle, klickt auf <b>OK <\/b>und findet die Tabelle im Navigationsfenster wieder. Nach einem Doppelklick auf die eingebundene Tabelle schaut sich erst einmal unsicher um.<\/p>\n<p>Nicht das jemand bemerkt, was sie da treibt! Schlie&szlig;lich sieht sie gerade die Daten aller Mitarbeiter inklusive der Geh&auml;lter. Ob man sich da vielleicht eine kleine Gehaltserh&ouml;hung verschaffen kann Frau Bienlein &auml;ndert ihr Gehalt von 2.500 Euro auf 2.550 Euro. <\/p>\n<p>Nat&uuml;rlich ist der Fall konstruiert. In der Realit&auml;t f&auml;llt eine solche Gehaltserh&ouml;hung bei der ersten Abrechnung auf &#8211; hoffentlich. Was aber, wenn die eigentliche Gehaltsabrechnung ein externer Dienstleister &uuml;bernimmt, auf Basis &uuml;bermittelter Daten, die aus der Tabelle <b>Mitarbeiter <\/b>stammen<\/p>\n<p>Es gibt f&uuml;r Frau Bienlein auch andere und weniger auff&auml;llige M&ouml;glichkeiten. F&uuml;r einen weiteren Nebenverdienst ben&ouml;tigt sie zun&auml;chst einen imagin&auml;ren Lieferanten. Also gibt sie in der Tabelle <b>Lieferanten <\/b>einen neuen Lieferanten ein, mitsamt Bankverbindung zum Ausgleich der Eingangsrechnungen. Das angegebene Konto kommt ihr dabei nat&uuml;rlich zugute. Anschlie&szlig;end erfasst sie in unregelm&auml;&szlig;igen Abst&auml;nden Bestellungen und zugeh&ouml;rige Eingangsrechnungen, immer sch&ouml;n unterhalb der Budgetfreigabe-Grenze.<\/p>\n<p>Den Rest erledigt die Buchhaltung bei ihrem monatlichen Zahlungslauf. Dieser Fall ist nicht erfunden. Solch illegalen Nebenverdienste wurden bereits in einigen Unternehmen aufgedeckt. <\/p>\n<p>In beiden F&auml;llen hat es Frau Bienlein recht einfach. Zum Schutz der Applikation wurde das gleiche Datenbank-Kennwort f&uuml;r Frontend und Backend verwendet. Aber auch bei unterschiedlichen Kennw&ouml;rtern w&auml;re sie in der Lage, die Daten direkt in den Access-Tabellen zu &auml;ndern. Mit etwas Aufwand k&ouml;nnte sie das Kennwort des Access-Backends ermitteln. Sie m&uuml;sste dazu nur die erw&auml;hnten Schwachstellen ausnutzen.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Eine Formularsteuerung wie auch die beschriebenen Absicherungen der Anwenderoberfl&auml;che gelten nur im jeweiligen Frontend. Sie verhindern nicht den direkten Zugriff auf die Daten des Backends, ob nun per Access oder mit einer anderen Anwendung.<\/p>\n<p>Es wird eine detailliertere und konkretere Zugriffssteuerung ben&ouml;tigt &#8211; und diese sollte direkt an den Tabellen festgelegt sein. Nur so l&auml;sst sich eine Umgehung der im Frontend definierten Zugriffsrechte vermeiden. Leider gibt es in Access diese Art der Zugriffssteuerung nicht.<\/p>\n<p>SQL Server bietet im Bereich Zugriffssteuerung und Sicherheit im Allgemeinen weitaus mehr M&ouml;glichkeiten. Jedoch kann man sich auch hier schnell in einer vermeintlichen Sicherheit w&auml;hnen.<\/p>\n<p>Dieser Artikel ist der Start einer Reihe zum Thema <b>Access und SQL Server-Security<\/b>. In den n&auml;chsten Kapiteln lesen Sie, welchen Sicherheitsgrad Sie mit den Security-M&ouml;glichkeiten von SQL Server erreichen k&ouml;nnen und ob diese Frau Bienlein aufhalten.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>WaWi.accdb<\/p>\n<p>WaWi_BE.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/4F4C473F-3526-404B-9A2D-6154E9CA4A5B\/aiu_1238.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sch&uuml;tzen Sie Ihre Daten vor unerlaubtem Zugriff Wenn Sie es nicht tun, gibt es daf&uuml;r bestimmt Gr&uuml;nde. Nur sind es mit hoher Wahrscheinlichkeit keine guten Gr&uuml;nde. Nicht selten liegt es an fehlendem Fachwissen oder einer falschen Einsch&auml;tzung der Daten oder es ist schlicht und ergreifend Bequemlichkeit. Die Sache mit der Bequemlichkeit sollten Sie selbst hinterfragen, das Fachwissen vermittelt Ihnen dieser wie die noch folgenden Artikel der Serie &#8222;Access und SQL Server-Security&#8220;.<\/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,66032020,44000022],"tags":[],"class_list":["post-55001238","post","type-post","status-publish","format-standard","hentry","category-662020","category-66032020","category-SQL_Server_und_Co"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access - 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\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access\" \/>\n<meta property=\"og:description\" content=\"Sch&uuml;tzen Sie Ihre Daten vor unerlaubtem Zugriff Wenn Sie es nicht tun, gibt es daf&uuml;r bestimmt Gr&uuml;nde. Nur sind es mit hoher Wahrscheinlichkeit keine guten Gr&uuml;nde. Nicht selten liegt es an fehlendem Fachwissen oder einer falschen Einsch&auml;tzung der Daten oder es ist schlicht und ergreifend Bequemlichkeit. Die Sache mit der Bequemlichkeit sollten Sie selbst hinterfragen, das Fachwissen vermittelt Ihnen dieser wie die noch folgenden Artikel der Serie &quot;Access und SQL Server-Security&quot;.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-10T09:41:21+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2\" \/>\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=\"21\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access\",\"datePublished\":\"2020-07-10T09:41:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/\"},\"wordCount\":3898,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f40b76fa5f64be19ea4d691ae30e8a2\",\"articleSection\":[\"2020\",\"3\\\/2020\",\"SQL Server und Co.\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/\",\"name\":\"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f40b76fa5f64be19ea4d691ae30e8a2\",\"datePublished\":\"2020-07-10T09:41:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f40b76fa5f64be19ea4d691ae30e8a2\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/6f40b76fa5f64be19ea4d691ae30e8a2\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access\"}]},{\"@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":"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access - 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\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/","og_locale":"de_DE","og_type":"article","og_title":"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access","og_description":"Sch&uuml;tzen Sie Ihre Daten vor unerlaubtem Zugriff Wenn Sie es nicht tun, gibt es daf&uuml;r bestimmt Gr&uuml;nde. Nur sind es mit hoher Wahrscheinlichkeit keine guten Gr&uuml;nde. Nicht selten liegt es an fehlendem Fachwissen oder einer falschen Einsch&auml;tzung der Daten oder es ist schlicht und ergreifend Bequemlichkeit. Die Sache mit der Bequemlichkeit sollten Sie selbst hinterfragen, das Fachwissen vermittelt Ihnen dieser wie die noch folgenden Artikel der Serie \"Access und SQL Server-Security\".","og_url":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-07-10T09:41:21+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"21\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access","datePublished":"2020-07-10T09:41:21+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/"},"wordCount":3898,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2","articleSection":["2020","3\/2020","SQL Server und Co."],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/","url":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/","name":"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2","datePublished":"2020-07-10T09:41:21+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/6f40b76fa5f64be19ea4d691ae30e8a2"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Access_und_SQL_ServerSecurity_Teil_1_Zugriffsschutz_in_Access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Access und SQL Server-Security, Teil 1: Zugriffsschutz in Access"}]},{"@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\/55001238","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=55001238"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001238\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001238"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001238"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}