Januar 19, 2021, 06:36:24

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datumsabhängige Lizenz

Begonnen von Bojenschaukler, Dezember 30, 2020, 18:15:49

⏪ vorheriges - nächstes ⏩

Bojenschaukler

Hallo zusammen,

ich bin neu hier und möchte hiermit zuerstmal alle begrüßen.

Hier wäre mein Fall, zu dem ich bisher keine Lösung finden konnte: Ich würde gerne Kunden Accessdatenbanken anbieten. Die Benutzung dieser Datenbanken wären immer jährlich verlängerbar. Das heißt, nach Zahlungseingang erhält der Kunde einen Zugangscode, den er einmalig eingeben muss, damit er die Anwendung wieder ein Jahr nutzen kann. In der Tabelle, auf die bei jedem Start von Access zugegriffen wird, soll u.a. geprüft werden, ob das aktuelle Datum zwischen Startdatum und Enddatum liegt. Wenn ja, dann erfolgt die Freigabe. Soweit so gut.

Und hier ist das Problem: Der Kunde könnte vor dem Öffnen von Access einfach jedesmal das Datum an seinem PC ändern und hätte somit zeitlich unbegrenzten Zugang zu der Datenbank. Wie ließe sich das umgehen?

Schon mal einen schönen Dank und viele Grüße
Robert

steffen0815

Hallo,
"richtige" Kunden werden im Normalfall am PC das Datum nicht wegen eines Programmes umstellen.
Da müsste das schon ein sehr tolles Programm sein  :) .
(Ich würde da als dein "Kunde" eher die Tabelle manipulieren.)

Zur eigentlichen Frage:
Dein Programm könnte einen Onlinezeitserver abfragen ...

Zum eigentlichen Thema:
Schreibe ein guten Programm und man wird bereit sein dafür zu zahlen.



Gruß Steffen

Bojenschaukler

Hallo Steffen,

okay, einen Onlinezeitserver. Werde ich probieren.

Danke für Deinen Ratschlag.

Viele Grüße und einen guten Rutsch ins neue Jahr.
Robert

datekk

Folgendes wäre möglich: Du legst Dir einen SQL Server an (SQL Express = Kostenlos). In der SQL Instanz legst Du eine Tabelle an. Die ist z.B. wie folgt aufgebaut: ID, Kundenname, Token, Ablaufdatum

Dann gibst Du der Access Anwendung einen Token - Gut eignen sich sog. GUIDs (frag Google). Den Token gibst Du auch in Deine SQL Tabelle ein. Mit der Zahlung gibst Du in die SQL Tabelle ein Ablaufdatum ein.

In den Einstellungen Deiner Access Anwendung legst Du ein Start-Formular fest. Dieses hat in den Eigenschaften 'beim öffnen' eine Routine, welche Kontakt mit Deinem SQL Server aufnimmt, nach dem Token sucht und sich das Ablaufdatum zieht. Dann wird das Ablaufdatum mit dem aktuellen Datum verglichen und Funktionen freigegeben oder halt eben nicht.

Man kann Access so einstellen, dass bei Start kein Zugriff auf die Tabellen möglich ist und den VBA Bereich kannst Du mit einem Code sperren.

Einziger Nachteil: Der Klient muss das Tool 'SQL Native Client' installieren.

Darüber hinaus würde sogar die Möglichkeit bestehen, die Klientanwendung 'aus der Ferne' heraus zu aktualisieren - z.B. wenn Du Änderungen an der Access Datei durchführst.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

DF6GL

Hallo,

dafür braucht es keinen SL-Server.


Nutze zur Speicherung der Zugangsdaten benutzderdefinierte Properties der DB, die zudem noch verschlüsselt werden können. Die sind dann nicht ohne Weiteres auslesbar, bzw. interpretierbar und somit auch nicht so manipulierbar, als dass die Zugangserlaubnis funktionieren würde.

Der Zugangscode sollte mindestens das aktuelle Datum in irgendeiner codierten Form enthalten, so dass nicht mit veralteten Zugangscode wieder freigeschaltet werden kann. Alternativ müssten "verbrauchte" Codes auf gleiche Weise in weiteren Properties abgelegt und so "gemerkt" werden.

Kurz gesagt, die Properties werden als Tabellenersatz genutzt.