SQL Server-Security, Teil 4: Schutz mit Datenbankrollen

In Teil 4 dieser Beitragsreihe wurden die Zugriffsrechte der Anwender auf die Datenbank begrenzt. In der Datenbank jedoch gibt es für die Anwender keine Grenzen. Durch die Zuordnung zur Datenbankrolle db_owner besitzen sie dort administrative Rechte. Dies erlaubt ihnen u.a. das Anlegen und Löschen von Tabellen sowie das Lesen und Ändern aller Daten. Wie Sie die Rechte mit Hilfe der Datenbankrollen weiter eingrenzen, lesen Sie in diesem Beitrag.

Weiterlesen

Webcam-Bilder in Datenbank speichern

Die Bilder einer Webcam kann man üblicherweise auf dem Rechner speichern, auf dem man diese erstellt hat. Gegebenenfalls geschieht das auch automatisch – so zum Beispiel mit der Kamera-App von Windows. Ein Leser fragte, ob sich das Aufnehmen von Bildern auch so steuern lässt, dass man die neuen Fotos direkt in einer Datenbank weiterverwenden kann – durch Speichern des Bildes oder des Speicherpfades in der Datenbank und das anschließende Anzeigen des Bildes direkt in einem Formular der Datenbank. Eine direkte Steuerung via VBA haben wir nicht realisiert, aber einen Workaround, der diese Aufgabe ebenso gut erfüllt.

Weiterlesen

.accde-Datenbank per VBA erstellen

Das Erstellen einer .accde-Datenbank mit den Mitteln der Benutzeroberfläche von Access ist einfach. Was aber, wenn Sie diesen Vorgang automatisieren wollen – beispielsweise, weil Sie regelmäßig per Mausklick .accde-Datenbanken aus Ihrer Entwicklungsdatenbank erzeugen wollen, um diese zum Kunden weiterzugeben VBA sieht keinen dokumentierten Befehl für diesen Zweck vor. Glücklicherweise gibt es Google, und dort haben wir eine undokumentierte Funktion gefunden, mit der Sie genau die gewünschte Aufgabe erledigen können.

Weiterlesen

PDF-Dokumente im WebBrowser-Steuerelement

Immer wieder erhalten wir Fragen danach, wie man PDF-Dokumente einfach in Access-Formularen anzeigen kann. Die einfachste Variante scheint die mit dem Web-Browser-Steuerelement zu sein, mit dem man zu einem auf der Festplatte befindlichen PDF-dokument navigiert. Der vorliegende Beitrag zeigt nicht nur, wie Sie das Dokument anzeigen, sondern liefert auch noch einige Möglichkeiten für die Handhabung des PDF-Dokuments. Dazu gehören das Zoomen, Drucken, Einstellen verschiedener Ansichten und Layouts und vieles mehr.

Weiterlesen

Tastenkombinationen in Access

Die Arbeit mit einer Anwendung wird umso effizienter, je schneller Sie bestimmte Schritte durchführen können. In Zeiten von Tastatur und Maus gibt es einige Aufgaben, die sich nur mit der Maus erledigen lassen, aber mit der Tastatur gehen die meisten Erledigungen schneller von der Hand – mit Ausnahme zum Beispiel des gezielten Anklickens von Steuerelementen, die nicht auf die Schnelle per Tastenkombination erreichbar sind. Für die anderen Fälle stellen wir Ihnen in diesem Beitrag alle gängigen (und auch einige weniger bekannte) Tastenkombinationen für die Arbeit mit der Benutzeroberfläche von Access vor.

Weiterlesen

Beziehungen zwischen Tabellen/Abfragen ermitteln

Im Beitrag “Berichte und Unterberichte konfigurieren” haben wir die Aufgabe, für Kombinationen aus Tabellen und Abfragen herauszufinden, ob eine Beziehung zwischen den beiden Datenquellen besteht und über welche Felder diese realisiert wird. In diesem Fall nutzen wir dies, um automatisch die Verknüpfungsfelder für die Datensatzquellen von Haupt- und Unterberichten zu ermitteln. Wir erhalten also die Tabelle/Abfrage des Hauptberichts und des Unterberichts und benötigen nun die Felder, über welche die Beziehung zwischen den beiden Datenquellen hergestellt wird. Wie das gelingt, zeigt der vorliegende Beitrag.

Weiterlesen

Ja/Nein-Daten selektieren mit zwei Listenfeldern

Wenn Sie Daten in einer Tabelle haben, die nach einem bestimmten Kriterium in zwei Kategorien eingeteilt werden, benötigen Sie eine praktische Lösung, um die Einteilung vorzunehmen. In diesem Beitrag zeigen wir, wie Sie die Daten einer Tabelle, die beispielsweise über ein Ja/Nein-Feld in zwei Kategorien landen, nach diesem Feld verwalten können. Dazu nutzen wir einfach zwei Listenfelder, von denen eines die Ja-Einträge und eines die Nein-Einträge anzeigt. Das Ändern des relevanten Ja/Nein-Feldes und somit das Verschieben von der einen in die andere Gruppe und umgekehrt erledigen wir dabei per Doppelklick auf das betroffene Element.

Weiterlesen

Ribbon für Rich-Text-Felder

Wenn Sie Daten im Rich-Text-Format anzeigen, können Sie das kleine Popup-Menü zum Formatieren des aktuell markierten Textes nutzen. Manch einem Nutzer ist das zu fummelig, da das Menü nur eingeblendet wird, wenn Text markiert ist – und manchmal verschwindet es auch einfach wieder. Da professionelle Anwendungen üblicherweise nicht die eingebauten Ribbon-Einträge anzeigen sollen, stehen wir vor einem Dilemma – wie soll der Benutzer die Formatierungen auf komfortable Weise durchführen Das ist kein Problem: Wir fügen einfach ein benutzerdefiniertes Ribbon hinzu, das beim Aktivieren eines Textfeldes mit Rich-Text-Format automatisch aktiviert wird und beim Verlassen wieder verschwindet.

Weiterlesen

Unterberichte ein- und ausblenden

Unterberichte bergen oft spannende Herausforderungen in sich – vor allem, wenn die Inhalte sich über mehr als eine Seite erstrecken. Die Aufgabe, die ein Leser mir diesmal stellt, hatte allerdings einen anderen Charakter: Er wünschte sich, dass die Benutzer einzelne Unterberichte je nach Anforderung aktivieren oder deaktivieren konnten. Wir suchen also eine Möglichkeit, um festzulegen, welche von verschiedenen Unterberichten im Hauptbericht angezeigt werden und welche nicht. Wie das gelingt, zeigt der vorliegende Beitrag.

Weiterlesen

SQL Server-Security – Teil 3: SQL Server-Authentifizierung

Der Zugriff von Access auf die Daten einer SQL Server-Datenbank erfolgt über eine Authentifizierung im SQL Server. Hierfür wird gerne die SQL Server-Anmeldung sa verwendet, ist sie doch standardmäßig in jeder SQL Server-Installation vorhanden. So verlockend diese Anmeldung auch sein mag, für einen Zugriffsschutz ist sie nicht empfehlenswert. Der dritte Teil dieser Reihe zeigt Ihnen eine Alternative.

Weiterlesen