Inhaltsverzeichnis
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
- DSN-Eintrag aus
appsettings.jsonlöschen - Gateway neustarten
- 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 – Nach Config-Änderung
- Health Check – Verbindung prüfen
- Datenbank-Konfiguration – Detaillierte Referenz
« ← 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