Collects members of the fixed server roles and CONTROL SERVER every 15
minutes with login type, disabled state and SQL login password policy.
Windows groups are unfolded recursively through Active Directory on a
Windows agent (cached, 20 s timeout, failures shown with the reason).
Changes since the previous collection are logged, and who/when is read
from the default trace (event 108) when the agent has the optional
ALTER TRACE; authors that only reach the buffered trace later are filled
in at the next collection. The first collection is the baseline.
New rules SQLI-SEC-001 (new privilege, High for sysadmin/securityadmin/
CONTROL SERVER) and SQLI-SEC-002 (more sysadmins than the limit, default
3). Names are sensitive evidence and never in titles or subjects.
Web: /instanser/{navn}/rettigheder and /rettigheder with change log by
period, alert banner on the instance page and overview, and an audit
PDF (/rapporter/rettigheder.pdf) linked from Rapporter.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
51 lines
3.2 KiB
Markdown
51 lines
3.2 KiB
Markdown
# Rapporter
|
|
|
|
Hvad der skete i et bestemt tidsrum på én instans (Statspack-lignende, også som PDF) står i [analyse.md](analyse.md).
|
|
|
|
SQLInsight Pro laver en **driftsrapport** som PDF til ledelse, it-chef og revision. Den er skrevet til læsere, der ikke er DBA'er:
|
|
|
|
- **Nøgletal**: instanser (og hvor mange der ikke kan nås), kritiske fund, fund med høj alvor, og nye og løste fund i perioden.
|
|
- **Sammenfatning** i almindeligt sprog, fx "1 af 4 instanser kører en SQL Server-version, som Microsoft ikke længere (fuldt) understøtter".
|
|
- **Kontroller** til compliance: supporteret version, opdateret, fuld backup, log-backup, integritetstjek, sidekontrol, tilgængelighed, hærdning (xp_cmdshell, TRUSTWORTHY) og vedligeholdelsesjobs. For hver kontrol vises, hvor mange instanser der opfylder den, ikke opfylder den, eller ikke kunne måles, og hvilke instanser der ikke opfylder den.
|
|
- **Instanser** med version, CU-niveau og antal fund.
|
|
- **Kritiske fund og fund med høj alvor** med alder.
|
|
- **Konfigurationsændringer i perioden**: sp_configure, trace flags, tjenestekonti, version og antal tempdb-filer, med fra/til og hvornår ændringen blev opdaget (se [konfiguration.md](konfiguration.md)).
|
|
|
|
"Ikke målt" betyder, at SQL Server-versionen, rettighederne eller en fejl forhindrede målingen. Det tælles aldrig som opfyldt.
|
|
|
|
## Hent rapporten
|
|
|
|
I webbrugerfladen under **Rapporter**: seneste 30 dage, kvartal eller år. Adressen `/rapporter/driftsrapport.pdf?dage=30` kan også hentes med et API-token (se [integration.md](integration.md)).
|
|
|
|
Navnet på rapporten sættes i webbens `appsettings.json`:
|
|
|
|
```json
|
|
"SQLInsight": { "Web": { "Organization": "Nordisk Logistik A/S", "TimeZone": "Europe/Copenhagen" } }
|
|
```
|
|
|
|
## Rettighedsrevision
|
|
|
|
En særskilt PDF til revisionen om forhøjede serverrettigheder, for én instans (knappen under **Rettigheder** på instansens side) eller alle (under **Rapporter**), for en valgt periode. Den indeholder:
|
|
|
|
- de nuværende rettigheder (faste serverroller og CONTROL SERVER) med Windows-grupper foldet ud til personer, og antallet af personer med sysadmin mod grænsen;
|
|
- ændringer i perioden med hvem og hvornår (fra default trace);
|
|
- sa-kontoens status, SQL-logins uden adgangskodepolitik og default trace;
|
|
- en redegørelse for datakilde og metode.
|
|
|
|
Adressen er `/rapporter/rettigheder.pdf?dage=90` (alle) eller `…&instans=<navn>`. Rapporten indeholder navne: den dannes i webbrugerfladen for den, der er logget ind, og sendes aldrig til SQLInsight Hub. Se [rettigheder.md](rettigheder.md).
|
|
|
|
## Månedlig rapport på mail
|
|
|
|
Agenten kan sende sidste måneds rapport automatisk. Den bruger SMTP-indstillingerne fra notifikationerne (`SQLInsight:Notifications:Email`: Host, Port, Security, From og eventuelt login). E-mail-notifikationerne behøver ikke være slået til.
|
|
|
|
```json
|
|
"SQLInsight": {
|
|
"Reports": {
|
|
"Organization": "Nordisk Logistik A/S",
|
|
"TimeZone": "Europe/Copenhagen",
|
|
"Monthly": { "Enabled": true, "To": [ "it-chef@firma.dk", "revision@firma.dk" ], "Day": 1, "Hour": 7 }
|
|
}
|
|
}
|
|
```
|
|
|
|
Rapporten dækker den foregående kalendermåned og sendes på den angivne dag og time. Var agenten stoppet på det tidspunkt, sendes den, så snart den kører igen i samme måned. Den sendes kun én gang pr. måned.
|