Runbook: DSN verwalten

Dauer: ~10 Minuten
Rolle: Gateway-Operator
Voraussetzung: appsettings.json Zugriff

DSN (Data Source Name) definiert vordefinierte Datenbankverbindungen.


Workflow

flowchart TD A[DSN-Anforderung] --> B{Neue oder bestehende?} B -->|Neu| C[appsettings.json bearbeiten] B -->|Bestehend| D[Verbindung testen] C --> E[Gateway neustarten] E --> D D --> F{Test erfolgreich?} F -->|Ja| G[Dokumentieren] F -->|Nein| H[Connection String prüfen] H --> C style G fill:#e8f5e9 style H fill:#ffebee


1. Bestehende DSN anzeigen

# Alle konfigurierten DSN auflisten (API)
curl -s http://localhost:5000/api/v1/dsn | jq
 
# Oder direkt in Config prüfen
cat appsettings.json | jq '.Gateway.Databases'

2. Neue DSN hinzufügen

appsettings.json bearbeiten:

{
  "Gateway": {
    "Databases": {
      "demo": {
        "Provider": "sqlite",
        "ConnectionString": "Data Source=data/demo.db"
      },
      "produktion": {
        "Provider": "sqlserver",
        "ConnectionString": "Server=sql01;Database=ProdDB;User Id=app;Password=***;TrustServerCertificate=True"
      },
      "reporting": {
        "Provider": "postgresql",
        "ConnectionString": "Host=pg01;Database=reports;Username=reader;Password=***"
      }
    }
  }
}

Unterstützte Provider:

Provider ConnectionString-Beispiel
———-—————————
sqlserver Server=host;Database=db;User Id=user;Password=pwd
sqlite Data Source=path/file.db
postgresql Host=host;Database=db;Username=user;Password=pwd
mysql Server=host;Database=db;User=user;Password=pwd

3. Gateway neustarten

# Windows
Stop-Process -Name "WvdS.WebAPI.Data.Gateway.Api" -Force
Start-Process -FilePath ".\WvdS.WebAPI.Data.Gateway.Api.exe"
 
# Linux (systemd)
sudo systemctl restart data-gateway

4. DSN testen

# Tabellen der neuen DSN auflisten
curl -s http://localhost:5000/api/v1/dsn/produktion/tables | jq
 
# Erste Daten abrufen
curl -s "http://localhost:5000/api/v1/dsn/produktion/tables/Customers?\$top=5" | jq

5. DSN entfernen

  1. DSN-Eintrag aus appsettings.json löschen
  2. Gateway neustarten
  3. Prüfen, dass DSN nicht mehr verfügbar ist:
curl -s http://localhost:5000/api/v1/dsn/alte_dsn/tables
# Erwartete Antwort: 404 Not Found

Checkliste

# Prüfpunkt
———–
1 Provider korrekt (sqlserver/sqlite/…)
2 Connection String gültig
3 Passwort nicht im Log sichtbar
4 Gateway neugestartet
5 API-Test erfolgreich

Troubleshooting

Problem Ursache Lösung
————————–
Database not found Falsche Datenbank Datenbankname prüfen
Login failed Falsches Passwort Credentials prüfen
Connection refused Firewall blockiert Port 1433/5432/3306 freigeben
Provider not supported Falscher Provider-Name sqlserver, sqlite, postgresql, mysql
JSON parse error Syntax-Fehler JSON validieren (jsonlint.com)

Sicherheitshinweise

Passwörter niemals im Klartext loggen!

Verwende Umgebungsvariablen für Credentials:

"ConnectionString": "Server=sql01;Database=ProdDB;User Id=${DB_USER};Password=${DB_PASS}"

Verwandte Runbooks


« ← Server starten | → Health Check »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional

Zuletzt geändert: den 29.01.2026 um 15:12