{"id":55000920,"date":"2014-02-01T00:00:00","date_gmt":"2020-05-22T21:18:51","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=920"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"FrontendBackend_mit_Kennwortschutz","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/","title":{"rendered":"Frontend\/Backend mit Kennwortschutz"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wenn Sie eine Access-Datenbank mit einem Kennwortschutz versehen, kann der Benutzer ohne Kennwort nicht darauf zugreifen (au&szlig;er mit gegebenenfalls vorhandener krimineller Energie). Wie aber sieht es aus, wenn Sie mit mehreren Benutzern auf die Daten einer Anwendung zugreifen wollen und diese deshalb in Frontend und Backend aufteilen wollen Wir zeigen, welche Sicherheitsl&uuml;cken dadurch entstehen k&ouml;nnen und wie Sie diese &#8211; allerdings nicht ohne Aufwand &#8211; beheben k&ouml;nnen.<\/b><\/p>\n<p>Die folgende Situation ist allt&auml;glich: Sie m&ouml;chten die Daten einer Datenbank, die auf dem Server liegt, sch&uuml;tzen. Nur zugriffsberechtigte Mitarbeiter sollen darauf zugreifen k&ouml;nnen. Am besten noch so, dass verschiedene Mitarbeitergruppen nur auf bestimmte Tabellen zugreifen k&ouml;nnen.<\/p>\n<p>Dummerweise besteht nicht die M&ouml;glichkeit, einen SQL Server einzurichten &#8211; mit diesem w&auml;re das Vorhaben n&auml;mlich umsetzbar (zwar auch nicht in kurzer Zeit, denn dazu ist durchaus etwas Vorbereitungs- und Umsetzungsarbeit einzuplanen). Also m&uuml;ssen Sie sich mit einer reinen Access-L&ouml;sung behelfen.<\/p>\n<p>Normalerweise besteht diese dann aus folgendem Szenario: Sie teilen die Datenbank in Frontend- und Backend auf und speichern dabei die Tabellen im Backend und legen entsprechende Tabellenverkn&uuml;pfungen im Frontend der Datenbank an, &uuml;ber die Sie auf die Tabellen im Backend zugreifen k&ouml;nnen.<\/p>\n<p><b>Frontend-Kennwort<\/b><\/p>\n<p>Unerfahrere Benutzer versehen dann vielleicht jedes einzelne Frontend mit einem Kennwort, das nur der jeweilige Benutzer kennt. Der Benutzer meldet sich an und kann dann &uuml;ber die Verkn&uuml;pfungen auf die Tabellen im Backend zugreifen.<\/p>\n<p>Dummerweise liegt das Backend so immer noch v&ouml;llig ungesch&uuml;tzt auf dem Server &#8211; das Kennwort haben Sie ja schlie&szlig;lich f&uuml;r die Frontend-Datenbank angelegt und nicht f&uuml;r das Backend.<\/p>\n<p>Beim Anlegen der Verkn&uuml;pfung fragt Access Sie dann nach dem Kennwort und speichert dieses mit der Verkn&uuml;pfung.<\/p>\n<p>In der Beispieldatenbank <b>BE.mdb <\/b>finden Sie eine Beispieltabelle namens <b>tblTest <\/b>mit ein paar Beispielfeldern.<\/p>\n<p>Dieser f&uuml;gen wir nun zuerst ein Datenbankkennwort hinzu. In neueren Access-Versionen verschl&uuml;sseln Sie die Datenbank somit gleichzeitig.<\/p>\n<p><b>Exklusiv &ouml;ffnen<\/b><\/p>\n<p>Bevor Sie dies erledigen, sollten Sie jedoch sicherstellen, dass Sie die Datenbank im Exklusiv-Modus ge&ouml;ffnet haben. Dies erledigen Sie etwa unter Access 2010, indem Sie im <b>&ouml;ffnen<\/b>-Dialog den Eintrag <b>Exklusiv &ouml;ffnen <\/b>der &ouml;ffnen-Schaltfl&auml;che ausw&auml;hlen (s. Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_001.png\" alt=\"&ouml;ffnen einer Datenbank-Datei im Exklusiv-Modus\" width=\"617,5\" height=\"456,1968\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: &ouml;ffnen einer Datenbank-Datei im Exklusiv-Modus<\/span><\/b><\/p>\n<p>Dies gelingt &uuml;brigens nur mit Datenbanken, die noch nicht anderweitig ge&ouml;ffnet sind. Ist dies doch der Fall, erhalten Sie eine entsprechende Meldung (s. Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_003.png\" alt=\"Nur noch nicht ge&ouml;ffnete Datenbanken k&ouml;nnen exklusiv ge&ouml;ffnet werden.\" width=\"575\" height=\"148,3871\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Nur noch nicht ge&ouml;ffnete Datenbanken k&ouml;nnen exklusiv ge&ouml;ffnet werden.<\/span><\/b><\/p>\n<p><b>Datenbank verschl&uuml;sseln<\/b><\/p>\n<p>Wenn Sie die Datenbank im Exklusiv-Modus ge&ouml;ffnet haben, k&ouml;nnen Sie etwa unter Access 2010 im <b>Datei<\/b>-Bereich unter <b>Informationen <\/b>die Schaltfl&auml;che <b>Mit Kennwort verschl&uuml;sseln <\/b>aufrufen (s. Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_002.png\" alt=\"Zuweisen eines Datenbank-Kennwortes und Verschl&uuml;sseln der Datenbank\" width=\"575\" height=\"285,7448\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Zuweisen eines Datenbank-Kennwortes und Verschl&uuml;sseln der Datenbank<\/span><\/b><\/p>\n<p>Access fragt dann per Dialog das Kennwort ab, wobei der Benutzer dieses zur Sicherheit zwei Mal eingeben muss (s. Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_004.png\" alt=\"Datenbankkennwort festlegen\" width=\"295\" height=\"148,4834\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Datenbankkennwort festlegen<\/span><\/b><\/p>\n<p><b>Keine Sperrung auf Datensatzebene<\/b><\/p>\n<p>Gegebenenfalls liefert dies eine Fehlermeldung wie in Bild 5. Sie brauchen dann nichts weiter zu tun &#8211; Access ignoriert dann einfach die Sperrung auf Datensatzebene.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_005.png\" alt=\"Keine Kompatibilit&auml;t mit Sperrung auf Datensatzebene\" width=\"617,5\" height=\"115,7285\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Keine Kompatibilit&auml;t mit Sperrung auf Datensatzebene<\/span><\/b><\/p>\n<p><b>Kennwort testen<\/b><\/p>\n<p>Schlie&szlig;en Sie nun die Beispieldatenbank und &ouml;ffnen Sie sie erneut. Es sollte nun ein Dialog erscheinen, der Sie zum Eingeben des Kennworts auffordert (s. Bild 6). <\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_006.png\" alt=\"Abfrage des Datenbankkennworts\" width=\"295\" height=\"110,1334\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Abfrage des Datenbankkennworts<\/span><\/b><\/p>\n<p><b>Tabelle verkn&uuml;pfen<\/b><\/p>\n<p>Die einfachste M&ouml;glichkeit, per Frontend-Datenbank auf eine Tabelle in einer verschl&uuml;sselten und kennwortgesch&uuml;tzten Backend-Datenbank zuzugreifen, ist das Anlegen einer Verkn&uuml;pfung.<\/p>\n<p>Also schlie&szlig;en Sie die Backend-Datenbank und &ouml;ffnen die zuk&uuml;nftige Frontend-Datenbank. F&uuml;hren Sie die zum Verkn&uuml;pfen mit einer externen Datenbanktabelle n&ouml;tigen Schritte durch. Wenn Sie die Backend-Datenbank ausgew&auml;hlt haben, erscheint wiederum der Dialog zur Eingabe des Datenbank-Kennworts. Nach der Eingabe zeigt Access schlie&szlig;lich die in der Backend-Datenbank enthaltenen Tabellen an (s. Bild 7). W&auml;hlen Sie die Tabelle <b>tblTest <\/b>aus und klicken Sie auf die Schaltfl&auml;che <b>OK<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_007.png\" alt=\"Verkn&uuml;pfen mit der Tabelle der verschl&uuml;sselten Datenbank\" width=\"550\" height=\"225,1008\"\/><\/p>\n<p><!--30percent--><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Verkn&uuml;pfen mit der Tabelle der verschl&uuml;sselten Datenbank<\/span><\/b><\/p>\n<p>Sie k&ouml;nnen nun wie gewohnt auf die Daten der verkn&uuml;pften Tabelle zugreifen. Nun schlie&szlig;en Sie Access und die Frontend-Datenbank und &ouml;ffnen beide erneut. Sie k&ouml;nnen nun auf die Tabelle des Backends zugreifen, ohne erneut das Kennwort eingeben zu m&uuml;ssen.<\/p>\n<p>Das ist interessant &#8211; das Kennwort scheint also irgendwo in der Datenbank gespeichert worden zu sein.<\/p>\n<p><b>Kennwort in MSysObjects<\/b><\/p>\n<p>Die Frage nach dem Speicherort f&uuml;r das Kennwort ist schnell beantwortet: Sie finden dieses an der gleichen Stelle, an der sich auch die Verkn&uuml;pfungseigenschaften befinden &#8211; n&auml;mlich in der Tabelle <b>MSysObjects<\/b>.<\/p>\n<p>Diese sieht ausschnittsweise wie in Bild 8 aus. Dort wird das Kennwort gleich im Klartext aufgef&uuml;hrt. Wer auf diese Tabelle zugreifen kann, kann sich also auch direkten Zugriff auf die komplette Backend-Datenbank verschaffen. Sicherheitstechnisch ist das nat&uuml;rlich keine besonders gute L&ouml;sung &#8211; wer sich ein klein wenig mit Access auskennt, kann diesen Mechanismus aushebeln.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_008.png\" alt=\"Das Kennwort der Backend-Datenbank wird in der Tabelle MSysObjects gespeichert.\" width=\"700\" height=\"307,9657\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Das Kennwort der Backend-Datenbank wird in der Tabelle MSysObjects gespeichert.<\/span><\/b><\/p>\n<p><b>Kennwort verbergen<\/b><\/p>\n<p>Welche M&ouml;glichkeit gibt es also nun, das Kennwort vor den Augen des Nutzers der Frontend-Datenbank zu verbergen Es gibt wohl keine einfache Variante, die Verkn&uuml;pfungen zu den Tabellen des Backends liefert und so einen einfachen Zugriff von Formularen, Berichten und VBA aus erm&ouml;glicht.<\/p>\n<p><b>Abfrage mit Kennwort<\/b><\/p>\n<p>Eine Idee lautete, einfach Abfragen zu erstellen, die auf die Tabellen der Backend-Datenbank zugreifen. An sich keine schlechte Idee. Eine solche Abfrage erstellt man mit Programmcode wie dem aus Listing 1. Die Prozedur erstellt ein neues QueryDef-Objekt und verwendet dabei eine SQL-Abfrage, die nicht auf eine lokale Tabelle zugreift, sondern auf die Tabelle im Backend &#8211; etwa so:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>AbfrageErstellen()\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>qdf<span style=\"color:blue;\"> As <\/span>DAO.QueryDef\r\n     <span style=\"color:blue;\">Dim <\/span>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Set<\/span> db = CurrentDb\r\n     On Error Resume <span style=\"color:blue;\">Next<\/span>\r\n     db.QueryDefs.Delete \"qryTest\"\r\n     <span style=\"color:blue;\">On Error GoTo<\/span> 0\r\n     <span style=\"color:blue;\">Set<\/span> qdf = db.CreateQueryDef(\"qryTest\", \"SELECT * FROM [;PWD=test;DATABASE=\" _\r\n         & CurrentProject.Path & \"\\BE.accdb].tblTest\")\r\n     <span style=\"color:blue;\">Set<\/span> rst = qdf.OpenRecordset\r\n     <span style=\"color:blue;\">Do While<\/span> <span style=\"color:blue;\">Not<\/span> rst.EOF\r\n         <span style=\"color:blue;\">Debug.Print<\/span> rst.Fields(0)\r\n         rst.Move<span style=\"color:blue;\">Next<\/span>\r\n     <span style=\"color:blue;\">Loop<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Erstellen einer Abfrage auf eine Tabelle im kennwortgesch&uuml;tzten Backend<\/span><\/b><\/p>\n<pre>SELECT * FROM [;PWD=test;DATABASE=c:\\BE.accdb].tblTest\")<\/pre>\n<p>Mit dem Parameter <b>PWD <\/b>wird dabei das Kennwort festgelegt. Der Zugriff &uuml;ber die Abfrage gelingt, und das Kennwort kann auch nicht &uuml;ber die Systemtabelle <b>MSys-Objects <\/b>ausgelesen werden. Allerdings finden sich die Eigenschaften mit der Angabe der Quelldatenbank sowie dem Kennwort im Entwurf der Abfrage wieder, wie Bild 9 zeigt. Um diese Eigenschaften zu sehen, klicken Sie auf die Tabelle im oberen Bereich der Entwurfsansicht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_009.png\" alt=\"Abfrage mit einer Tabelle aus einer kennwortgesch&uuml;tzten Backend-Datenbank\" width=\"700\" height=\"292,887\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Abfrage mit einer Tabelle aus einer kennwortgesch&uuml;tzten Backend-Datenbank<\/span><\/b><\/p>\n<p>Genau wie die Tabelle MSysObjects ist auch dies f&uuml;r Otto Normalverbraucher schwer zu finden, aber ein Access-Entwickler wird das Kennwort der Backend-Datenbank schnell ermitteln k&ouml;nnen.<\/p>\n<p>Der Wunsch, dass die Entwurfsansicht der Abfrage wie bei Formularen, Berichten und Modulen in einer zu einer <b>.mde <\/b>oder <b>.accde <\/b>umgewandelten Datenbankdatei nicht mehr zu &ouml;ffnen ist, erf&uuml;llt sich nicht &#8211; der Entwurf von Tabellen und Abfragen steht dem Benutzer einer <b>.mde<\/b>&#8211; oder <b>.accde<\/b>-Datenbank offen.<\/p>\n<p><b>Backend-Zugriff per VBA<\/b><\/p>\n<p>Die Idee mit der <b>.mde<\/b>&#8211; oder <b>.accde<\/b>-Datei ist allerdings nicht allzu schlecht: Die einzige M&ouml;glichkeit, das Kennwort zuverl&auml;ssig vor den Augen des Benutzers zu sch&uuml;tzen, ist das Verstecken des Kennworts im Code und anschlie&szlig;endes Umwandeln in eine <b>.mde<\/b>\/<b>.accde<\/b>-Datenbank. Dass auch diese wiederum dekompiliert werden kann, lassen wir an dieser Stelle au&szlig;en vor &#8211; es gibt nur sehr wenige kommerzielle Anbieter, die eine solche Dienstleistung offerieren, und die pr&uuml;fen in der Regel zuvor, ob der Auftraggeber der tats&auml;chliche Eigent&uuml;mer der Datenbank ist.<\/p>\n<p>Aber wie bekommen wir das Kennwort, das wir beispielsweise als Konstante in einem Standardmodul untergebracht haben, in die Tabelle oder Abfrage Die Antwort lautet: gar nicht. Zumindest nicht, ohne dass der Benutzer das Kennwort anschlie&szlig;end wieder &uuml;ber die Systemtabelle <b>MSysObjects <\/b>oder &uuml;ber den Abfrageentwurf ermitteln kann.<\/p>\n<p>Damit steht fest: Wenn Sie auf Daten aus einer kennwortgesch&uuml;tzten Backend-Datenbank zugreifen m&ouml;chten, k&ouml;nnen Sie gar nicht mit Tabellen oder Abfragen arbeiten.<\/p>\n<p><b>Recordset mit Kennwort<\/b><\/p>\n<p>Zum Gl&uuml;ck bieten aber sowohl Formulare als auch Berichte und auch Steuer-elemente wie das Kombinationsfeld oder das Listenfeld eine <b>Recordset<\/b>-Eigenschaft zum F&uuml;llen mit Daten an. Dieser Eigenschaft k&ouml;nnen Sie beim &ouml;ffnen des Formulars\/Berichts oder auch zur Laufzeit ein per VBA erstelltes Recordset zuweisen, das die gew&uuml;nschten Daten enth&auml;lt.<\/p>\n<p>Im Beispiel des Formulars <b>frmTest<\/b> aus Bild 10 implementieren wir die Ereignisprozedur <b>Beim Laden<\/b>. Diese soll einige Zeilen Code enthalten, die ein Recordset auf Basis der Tabelle <b>tblTest <\/b>der kennwortgesch&uuml;tzten Backend-Datenbank &ouml;ffnet und der <b>Recordset<\/b>-Eigenschaft des Formulars zuweist.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2014_01\/pic_920_010.png\" alt=\"Dieses Formular wird erst beim &ouml;ffnen &uuml;ber ein Recordset bef&uuml;llt.\" width=\"575\" height=\"273,2855\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Dieses Formular wird erst beim &ouml;ffnen &uuml;ber ein Recordset bef&uuml;llt.<\/span><\/b><\/p>\n<p>Listing 2 zeigt den Aufbau der ben&ouml;tigten Prozedur. Diese f&uuml;llt zun&auml;chst das <b>Database<\/b>-Objekt <b>db <\/b>mit einem Verweis auf die Backend-Datenbank, wobei sie die <b>OpenDatabase<\/b>-Methode verwendet. Diese erwartet als Parameter zun&auml;chst den Pfad zu der zu verwendenden Datenbank-Datei.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Form_Load()\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>rst<span style=\"color:blue;\"> As <\/span>DAO.Recordset\r\n     <span style=\"color:blue;\">Set<\/span> db = OpenDatabase(CurrentProject.Path & \"\\BE.accdb\", False, False, \"MS Access;PWD=test;\")\r\n     <span style=\"color:blue;\">Set<\/span> rst = db.OpenRecordset(\"SELECT * FROM tblTest\", dbOpenDynaset)\r\n     <span style=\"color:blue;\">Set<\/span> Me.Recordset = rst\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 2: &ouml;ffnen einer Abfrage mit &uuml;bergabe des Kennworts<\/span><\/b><\/p>\n<p>Die beiden folgenden Parameter legen fest, ob die Datenbank im Exklusiv-Modus ge&ouml;ffnet werden (hier <b>False<\/b>) und ob die Datenbank nur zum Lesen ge&ouml;ffnet werden soll (ebenfalls <b>False<\/b>). Der letzte Parameter erwartet einen Hinweis auf die Art der zu &ouml;ffnenden Datenbank sowie das Kennwort, das durch das Name-Wert-Paar <b>PWD=test <\/b>&uuml;bergeben wird.<\/p>\n<p>Das Formular l&auml;sst sich auf diese Weise problemlos &ouml;ffnen und zeigt die Daten der Tabelle <b>tblTest <\/b>an &#8211; diese k&ouml;nnen auch bearbeitet werden.<\/p>\n<p><b>Viel Arbeit<\/b><\/p>\n<p>Wenn Sie eine Backend-Datenbank tats&auml;chlich auf diese Weise sch&uuml;tzen wollen, m&uuml;ssen Sie jede einzelne Datenherkunft\/Datensatzherkunft von Formularen, Unterformularen, Berichten, Kombinationsfeldern und Listenfeldern anpassen.<\/p>\n<p>Das Aktualisieren der Datenherk&uuml;nfte\/Datensatzherk&uuml;nfte ist dann nicht nur auf das &ouml;ffnen von Formularen beschr&auml;nkt. Wenn ein Formular ein Unterformular enth&auml;lt, dessen Daten vom aktuell im Hauptformular angezeigten Datensatz abh&auml;ngen, m&uuml;ssen Sie die Datenherkunft des Unterformulars bei jedem Datensatzwechsel im Hauptformular wechseln. Gleiches gilt etwa bei abh&auml;ngigen Kombinations- und Listenfeldern &#8211; aber hier ist ja ohnehin bereits der Einsatz des Ereignisses <b>Nach Aktualisierung <\/b>des &uuml;bergeordneten Kombinationsfeldes gefragt, um die Datensatzherkunft des abh&auml;ngigen Kombinationsfeldes zu &auml;ndern.<\/p>\n<p>Sollten Sie ein solches Vorhaben durchf&uuml;hren, legen Sie am besten eine Standard-Prozedur an, welche das Recordset &ouml;ffnet und zuweist.<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Verschl&uuml;sselte Backends machen nur so lange Sinn, bis ein Benutzer das Kennwort erf&auml;hrt. Um dieses zuverl&auml;ssig zu verbergen, ist gro&szlig;er Aufwand n&ouml;tig. Abgesehen davon w&auml;re noch zu pr&uuml;fen, wie sich die &uuml;blichen Tricks zur Steigerung der Performance (Aufrechterhalten einer Verbindung zum Backend et cetera) f&uuml;r diesen Fall umsetzen lassen.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>BE.mdb<\/p>\n<p>FE.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/{C7DEBBA9-FE33-4198-8CA5-C12D5AD1A80A}\/aiu_920.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie eine Access-Datenbank mit einem Kennwortschutz versehen, kann der Benutzer ohne Kennwort nicht darauf zugreifen (au&szlig;er mit gegebenenfalls vorhandener krimineller Energie). Wie aber sieht es aus, wenn Sie mit mehreren Benutzern auf die Daten einer Anwendung zugreifen wollen und diese deshalb in Frontend und Backend aufteilen wollen Wir zeigen, welche Sicherheitsl&uuml;cken dadurch entstehen k&ouml;nnen und wie Sie diese &#8211; allerdings nicht ohne Aufwand &#8211; beheben k&ouml;nnen.<\/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":[66012014,662014,44000038],"tags":[],"class_list":["post-55000920","post","type-post","status-publish","format-standard","hentry","category-66012014","category-662014","category-Sicherheit"],"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>Frontend\/Backend mit Kennwortschutz - 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\/FrontendBackend_mit_Kennwortschutz\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend\/Backend mit Kennwortschutz\" \/>\n<meta property=\"og:description\" content=\"Wenn Sie eine Access-Datenbank mit einem Kennwortschutz versehen, kann der Benutzer ohne Kennwort nicht darauf zugreifen (au&szlig;er mit gegebenenfalls vorhandener krimineller Energie). Wie aber sieht es aus, wenn Sie mit mehreren Benutzern auf die Daten einer Anwendung zugreifen wollen und diese deshalb in Frontend und Backend aufteilen wollen Wir zeigen, welche Sicherheitsl&uuml;cken dadurch entstehen k&ouml;nnen und wie Sie diese - allerdings nicht ohne Aufwand - beheben k&ouml;nnen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-22T21:18:51+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f\" \/>\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=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Frontend\\\/Backend mit Kennwortschutz\",\"datePublished\":\"2020-05-22T21:18:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/\"},\"wordCount\":1838,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/832cad711716402a995fa676d23e9f1f\",\"articleSection\":[\"1\\\/2014\",\"2014\",\"Sicherheit\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/\",\"name\":\"Frontend\\\/Backend mit Kennwortschutz - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/832cad711716402a995fa676d23e9f1f\",\"datePublished\":\"2020-05-22T21:18:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/832cad711716402a995fa676d23e9f1f\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/832cad711716402a995fa676d23e9f1f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/FrontendBackend_mit_Kennwortschutz\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\\\/Backend mit Kennwortschutz\"}]},{\"@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":"Frontend\/Backend mit Kennwortschutz - 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\/FrontendBackend_mit_Kennwortschutz\/","og_locale":"de_DE","og_type":"article","og_title":"Frontend\/Backend mit Kennwortschutz","og_description":"Wenn Sie eine Access-Datenbank mit einem Kennwortschutz versehen, kann der Benutzer ohne Kennwort nicht darauf zugreifen (au&szlig;er mit gegebenenfalls vorhandener krimineller Energie). Wie aber sieht es aus, wenn Sie mit mehreren Benutzern auf die Daten einer Anwendung zugreifen wollen und diese deshalb in Frontend und Backend aufteilen wollen Wir zeigen, welche Sicherheitsl&uuml;cken dadurch entstehen k&ouml;nnen und wie Sie diese - allerdings nicht ohne Aufwand - beheben k&ouml;nnen.","og_url":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-22T21:18:51+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Frontend\/Backend mit Kennwortschutz","datePublished":"2020-05-22T21:18:51+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/"},"wordCount":1838,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f","articleSection":["1\/2014","2014","Sicherheit"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/","url":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/","name":"Frontend\/Backend mit Kennwortschutz - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f","datePublished":"2020-05-22T21:18:51+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/832cad711716402a995fa676d23e9f1f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/FrontendBackend_mit_Kennwortschutz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Frontend\/Backend mit Kennwortschutz"}]},{"@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\/55000920","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=55000920"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000920\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}