README: support SQL Server 2000 and later with a capability-based version matrix

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK
This commit is contained in:
Claude 2026-09-29 05:13:03 +00:00
parent 9792b54480
commit 63b54a8a68
No known key found for this signature in database

View file

@ -163,8 +163,11 @@ Hvert **finding** indeholder:
### Fase 0: Fundament
- [ ] Solution-struktur (.NET 10 LTS): Agent, Rules, Web, Hub, fælles domænemodel
- [ ] CI-pipeline (build, test, statisk analyse)
- [ ] Integrationstests mod rigtige SQL Server-containere (2017, 2019, 2022 og 2025) med Testcontainers
- [ ] Integrationstests mod rigtige SQL Server-containere (2017, 2019, 2022 og 2025) med Testcontainers. Versionerne 2000–2016 findes ikke som containere og testes på VM'er
- [ ] Least-privilege-script til opsætning af rettigheder og en test, der verificerer det
- [ ] Capability-model: collectors og regler angiver, hvilken minimumsversion, edition og funktion de kræver
- [ ] Spike: forbindelse til SQL Server 2000, 2005 og 2008 (driver, TLS 1.0 og ODBC-fallback). Resultatet afgør, om legacy-laget er et separat modul
- [ ] Testmiljø med VM'er til de legacy-versioner, der ikke findes som containere (2000–2016)
- [ ] Datamodel for findings (fælles kontrakt mellem Agent og Hub)
- [ ] Bidragsguide, code of conduct og issue templates
@ -175,6 +178,7 @@ Hvert **finding** indeholder:
- [ ] Lokalt repository med retention-politik
- [ ] Web-UI: serveroversigt, liste over fund, detaljevisning og simple trends
- [ ] Registrering af version og CU-niveau med advarsel om manglende opdateringer
- [ ] Legacy-collectors til 2000/2005/2008: blocking, waits, konfiguration, backup og version
- [ ] MSI-installer og dokumentation
### Fase 2: Dyb analyse
@ -203,12 +207,27 @@ Hvert **finding** indeholder:
---
## Understøttede versioner (mål)
## Understøttede versioner
- SQL Server 2017, 2019, 2022 og 2025
- SQL Server 2016 og ældre overvåges i begrænset omfang og markeres altid som et **kritisk fund**, fordi de ikke længere får sikkerhedsopdateringer. Extended support for 2016 sluttede i juli 2026.
- Standard, Enterprise og Developer edition
- Senere: Azure SQL Managed Instance og SQL Server på Linux
SQLInsight Pro overvåger **alle SQL Server-versioner fra SQL Server 2000 og frem**. Ikke alt kan måles på alle versioner. Agenten registrerer derfor, hvad instansen kan (version, edition og funktioner), og vælger de collectors og regler, der passer til den. Hvis en regel ikke kan vurderes på en given version, vises den som **"ikke målbar på denne version"**. Den må aldrig fremstå som "OK".
| Version | Datakilder | Hvad kan analyseres | Begrænsninger |
|---|---|---|---|
| **2000** (8.0) | `sysprocesses`, `DBCC SQLPERF(WAITSTATS)`, `sysindexes`, `sp_configure`, `msdb`, error log | Blocking, waits, konfiguration, backup, filstørrelser og version | Ingen DMV'er og ingen granulære rettigheder. Deadlocks kun via trace flag 1204 i error log. Ingen plananalyse. |
| **2005** (9.0) | DMV'er, default trace | Waits, query stats, plan cache, missing/unused indexes, I/O-latens, blocking-kæder | Ingen Extended Events. Deadlocks via trace flag 1222 og error log. |
| **2008 / 2008 R2** (10.x) | + Extended Events, `system_health` | Deadlock-grafer fra ring buffer og Resource Governor | `system_health` har kun ring buffer. Deadlock-XML er ufuldstændig før 2008 R2. |
| **2012 / 2014** (11–12) | + `system_health` med file target, AlwaysOn-DMV'er | Always On AG, historik over deadlocks, udvidede query-metrikker | |
| **2016** (13) | + Query Store, `LastGoodCheckDbTime` (SP2) | Planregressioner og CHECKDB uden sysadmin | |
| **2017 / 2019** (14–15) | + automatic tuning, `dm_exec_query_plan_stats` | Tilgængelighed af seneste faktiske plan og Linux-instanser | |
| **2022 / 2025** (16–17) | + granulære rettigheder, Query Store hints, PSP optimization | Fuld dækning | |
**Livscyklus:** Alle versioner til og med SQL Server 2016 er uden for Microsofts support (extended support for 2016 sluttede i juli 2026). De bliver overvåget, men versionen vises altid som et **kritisk fund** med en anbefalet opgraderingssti.
**Legacy-forbindelser:** Moderne .NET-drivere og TLS 1.2 er ikke kompatible med de ældste versioner. Uopdaterede 2005/2008-instanser understøtter typisk kun TLS 1.0, og Microsoft.Data.SqlClient understøtter ikke SQL Server 2000. Agenten har derfor et separat forbindelseslag til legacy-versioner (ODBC-baseret), som bruges automatisk ved behov. Kunden får en tydelig advarsel om den svagere kryptering.
**Rettigheder på ældre versioner:** På SQL Server 2000 findes `VIEW SERVER STATE` ikke, så nogle checks kræver forhøjede rettigheder. Det er dokumenteret pr. regel, og kunden vælger selv, hvilke checks der slås til.
Øvrige mål: Standard, Enterprise, Developer og Express edition. Senere kommer Azure SQL Managed Instance.
---