SQL Server Health Monitor

Lizenz

Das Produkt wird mit einer RSA-signierten Lizenzdatei (license.lic) ausgeliefert. Der Hersteller hält den privaten Schlüssel; die Anwendung enthält nur den öffentlichen Schlüssel und prüft die Signatur bei jedem Start.

Die Lizenz kauft Support, keine Funktionen. Die Anwendung ist ohne Lizenz vollständig nutzbar — Server anlegen, Alarmregeln bearbeiten, Indexwartung ausführen, alles. Die Lizenz weist nach, wer einen Supportanspruch hat und wie lange dieser läuft. Die Software selbst bleibt dauerhaft: Endet der Supportzeitraum, hört nichts auf zu funktionieren.

Wie die Lizenzierung funktioniert

  • appsettings.json:Licensing:PublicKeyBase64 — der öffentliche RSA-2048-Schlüssel des Herstellers. Wird mit der Anwendung ausgeliefert. Ändern Sie ihn nicht, außer der Hersteller gibt eine neue Schlüsselgeneration heraus.
  • appsettings.json:Licensing:LicenseFilePath — Pfad zur Lizenzdatei. Standard ist license.lic neben der Anwendungsdatei.
  • Der Lizenzumschlag ist ein kleines JSON-Dokument mit Kundenname, Edition, Ablaufdatum des Supports und einer Base64-RSA-Signatur. Die Anwendung prüft die Signatur bei jedem Start erneut und meldet das Ergebnis — sie sperrt dabei nichts.

Lizenz installieren

  1. Sie erhalten license.lic vom Hersteller.
  2. Legen Sie die Datei neben die Anwendungsdatei (Windows: C:\Apps\SqlServerHealthMonitor\license.lic; Linux: /opt/sshm/license.lic).
  3. Anwendung neu starten.
  4. Startprotokoll beobachten — dort sollte stehen:
    License: support for Acme Corp (edition Standard) runs until 2027-06-30, 392 days remaining.
    
  5. Unter /Settings/License dieselben Angaben in der Oberfläche prüfen.

Steht im Protokoll dagegen:

License: Invalid — signature mismatch. Support status unknown; no features are restricted.

…dann ist entweder die Datei bei der Übertragung beschädigt worden, oder der öffentliche Schlüssel in appsettings.json passt nicht zum privaten Schlüssel, mit dem die Datei signiert wurde. Laden Sie die Lizenz erneut herunter; hilft das nicht, muss der Hersteller den öffentlichen Schlüssel vermutlich neu ausstellen.

Erneuern und wechseln

Eine erneuerte Lizenz ist schlicht eine neue license.lic mit späterem ExpiresAt. Datei austauschen und neu starten — eine neue Programmversion ist dafür nicht nötig.

Sie können eine Erneuerung auch über die Oberfläche einspielen: /Settings/License → neue Datei hochladen. Die Änderung greift sofort, ein Neustart ist nicht erforderlich.

Neue Lizenz erzeugen (Herstellerseite)

Nur für den Hersteller — auf Betreiberseite lautet die Regel „nicht anfassen“:

# Schlüsselpaar erzeugen (einmalig; der Hersteller behält die private Hälfte FÜR IMMER).
# Schreibt license-private-key.xml in das aktuelle Verzeichnis und gibt den öffentlichen Schlüssel aus.
dotnet run --project tools/LicenseGenerator -- genkey

# Eine Lizenz für einen Kunden signieren. Positionsargumente:
#   sign <private-key.xml> <customer> <expires-yyyy-mm-dd> [edition] [maxServers]
#   maxServers: steht im Umschlag und wird auf der Lizenzseite angezeigt, wird aber
#               NICHT durchgesetzt — nichts im Produkt hängt davon ab. 0 oder weggelassen = ohne Angabe.
dotnet run --project tools/LicenseGenerator -- sign \
    license-private-key.xml "Acme Corp" 2027-06-30 Standard 0

# Eine Lizenz mit Serverzahl (wird nur festgehalten, nichts setzt sie durch):
dotnet run --project tools/LicenseGenerator -- sign \
    license-private-key.xml "Acme Corp (Demo)" 2099-12-31 Demo 3

# Die signierte Datei wird als license.lic im aktuellen Verzeichnis abgelegt. Sie geht an den
# Kunden; der ausgegebene öffentliche Schlüssel kommt nach appsettings.json:Licensing:PublicKeyBase64.

Verliert der Hersteller den privaten Schlüssel, bleiben alle bereits ausgestellten Lizenzen gültig (bestehende Installationen prüfen weiterhin erfolgreich), aber es lassen sich keine neuen Lizenzen mehr signieren, solange nicht ein neues Schlüsselpaar erzeugt und eine aktualisierte Version mit dem neuen öffentlichen Schlüssel ausgeliefert wird. Für den Vertrieb bedeutet das einen Ausfall bis zur nächsten Auslieferung.

Was ohne Lizenz oder mit abgelaufener Lizenz passiert

Nichts hört auf zu funktionieren. Es gibt keinen Nur-Lese-Modus, keine Funktionssperre und keine Serverbegrenzung — jede Funktion steht zur Verfügung, ob eine Lizenz installiert ist oder nicht. Es ändert sich allein das, was die Anwendung über Ihren Supportanspruch sagen kann:

Zustand Was Sie sehen
Gültig /Settings/License zeigt Kunde, Edition und verbleibende Supporttage. Kein Hinweisbalken.
Keine Lizenz Gar nichts. Eine Installation ohne Lizenz ist ein normaler, vorgesehener Zustand.
Abgelaufen Administratoren sehen einen Hinweis, dass der Support an diesem Datum endete und der Funktionsumfang unberührt bleibt.
Ungültig / manipuliert Administratoren sehen einen Hinweis, dass die Datei nicht gelesen werden konnte und der Supportstatus daher unbekannt ist.

Wer im Code nachsehen will: LicenseStatus in Services/LicenseService.cs trägt die Regel als Kommentar und stellt bewusst kein Merkmal bereit, an dem eine Seite sperren könnte.

Diese Dokumentation wird aus den Inhalten erzeugt, die auch in der Anwendung unter „Hilfe“ erscheinen.