SQL Server Audit (Database Engine)
- 01/01/2020
- 13 minutes to read
-
- D
- v
- M
- M
- D
-
+8
Applies to: alle understøttede versioner administreret forekomst
revision af en forekomst af databasemotoren eller en individuel database involverer sporing og logning af hændelser, der forekommer på databasemotoren. Med Serverrevision kan du oprette serverrevisioner, som kan indeholde serverrevisionsspecifikationer for serverniveauhændelser og databaserevisionsspecifikationer for databaseniveauhændelser. Reviderede begivenheder kan skrives til hændelseslogfilerne eller til revisionsfiler.
vigtigt
denne funktion har visse adfærdsændringer. Se forskelle i administrerede instanser fra server for at få flere oplysninger om alle ændringer i adfærd.
der er flere niveauer af auditering af din server, afhængigt af myndigheds-eller standardkrav til din installation. Server Audit indeholder de værktøjer og processer, du skal have for at aktivere, gemme og se revisioner på forskellige server-og databaseobjekter.
du kan optage handlingsgrupper for serverrevision pr.forekomst og enten handlingsgrupper for databaserevision eller databaserevisionshandlinger pr. database. Revisionsbegivenheden finder sted, hver gang den reviderede handling opstår.
alle udgaver af server support server niveau revisioner. Alle udgaver understøtter databaseniveaurevisioner, der begynder med Server 2016 (13.SP1. Før det var databaseniveaurevision begrænset til Enterprise -, Developer-og Evalueringsudgaver. Du kan finde flere oplysninger i funktioner, der understøttes af udgaverne af Server 2016.
Bemærk
dette emne gælder for server. Se Kom i gang med databaseovervågning.
en revision er kombinationen af flere elementer i en enkelt pakke til en bestemt gruppe serverhandlinger eller databasehandlinger. Komponenterne i Server audit kombineres for at producere et output, der kaldes en audit, ligesom en rapportdefinition kombineret med grafik og dataelementer producerer en rapport.
Server audit bruger udvidede begivenheder til at hjælpe med at oprette en audit. Du kan finde flere oplysninger om udvidede begivenheder under udvidede begivenheder.
SERVERREVISION
objektet Serverrevision indsamler en enkelt forekomst af handlinger på server-eller databaseniveau og grupper af handlinger, der skal overvåges. Revisionen er på SERVERFOREKOMSTNIVEAU. Du kan have flere revisioner pr.
når du definerer en revision, angiver du placeringen for resultatet af resultaterne. Dette er revisionsdestinationen. Revisionen oprettes i en deaktiveret tilstand og reviderer ikke automatisk nogen handlinger. Når revisionen er aktiveret, modtager revisionsdestinationen data fra revisionen.
Serverrevisionsspecifikation
Serverrevisionsspecifikationsobjektet tilhører en revision. Du kan oprette en serverrevisionsspecifikation pr.
serverrevisionsspecifikationen samler mange handlingsgrupper på serverniveau, der er rejst af funktionen udvidede begivenheder. Du kan medtage revisionsaktionsgrupper i en serverrevisionsspecifikation. Revisionsaktionsgrupper er foruddefinerede grupper af handlinger, som er atomhændelser, der forekommer i databasemotoren. Disse handlinger sendes til revisionen, som registrerer dem i målet.
handlingsgrupper på serverniveau er beskrevet i emnet Handlingsgrupper og handlinger på Serverrevision.
Databaserevisionsspecifikation
Databaserevisionsspecifikationsobjektet tilhører også en SERVERREVISION. Du kan oprette en database revision specifikation pr.
databaserevisionsspecifikationen indsamler revisionshandlinger på databaseniveau, der er rejst af funktionen udvidede begivenheder. Du kan føje enten audithandlingsgrupper eller audithændelser til en databaserevisionsspecifikation. Revisionshændelser er de atomhandlinger, der kan revideres af SERVERMOTOREN. Revisionsaktionsgrupper er foruddefinerede grupper af handlinger. Begge er på Scope Server database. Disse handlinger sendes til revisionen, som registrerer dem i målet. Medtag ikke server-scoped objekter, såsom systemvisninger, i en bruger database revision specifikation.
handlingsgrupper på databaseniveau og revisionsaktioner er beskrevet i emnet aktionsgrupper og handlinger på Serverrevisionsniveau.
Target
resultaterne af en revision sendes til et mål, som kan være en fil, hændelsesloggen for vinduer eller hændelsesloggen for vinduer. Logfiler skal gennemgås og arkiveres med jævne mellemrum for at sikre, at målet har tilstrækkelig plads til at skrive yderligere poster.
vigtigt
enhver godkendt bruger kan læse og skrive til hændelsesloggen. Programhændelsesloggen kræver lavere tilladelser end vinduet sikkerhedshændelsesloggen og er mindre sikker end vinduet sikkerhedshændelsesloggen.
skrivning til Sikkerhedsloggen kræver, at SERVERSERVERKONTOEN føjes til politikken Generer sikkerhedsrevisioner. Som standard er det lokale System, den lokale Service og netværkstjenesten en del af denne politik. Denne indstilling kan konfigureres ved hjælp af snap-in ‘ en sikkerhedspolitik (secpol.msc). Derudover skal sikkerhedspolitikken Audit object access være aktiveret for både succes og fiasko. Denne indstilling kan konfigureres ved hjælp af snap-in ‘ en sikkerhedspolitik (secpol.msc). Du kan indstille den mere detaljerede programgenererede politik fra kommandolinjen ved hjælp af programmet audit policy (AuditPol.eks). Du kan finde flere oplysninger om trinnene for at aktivere skrivning til Sikkerhedsloggen, under skriv Serverrevisionshændelser til Sikkerhedsloggen. For mere information om Auditpol.se vidensbase artikel 921469, hvordan du bruger Gruppepolitik til at konfigurere detaljeret sikkerhedsrevision. Logfilerne er Globale i forhold til operativsystemet. Du kan finde flere oplysninger om hændelseslogfiler i Oversigt over Begivenhedsfremviser. Hvis du har brug for mere præcise tilladelser til revisionen, skal du bruge det binære filmål.
når du gemmer revisionsoplysninger i en fil, kan du begrænse adgangen til filplaceringen på følgende måder for at forhindre manipulation:
-
din Serverkonto skal have både læse-og skrivetilladelse.
-
Revisionsadministratorer kræver typisk læse-og skrivetilladelse. Dette forudsætter, at Revisionsadministratorer er vinduer konti til administration af revisionsfiler, såsom: kopiere dem til forskellige aktier, sikkerhedskopiere dem, og så videre.
-
Revisionslæsere, der har tilladelse til at læse revisionsfiler, skal have læsetilladelse.
selv når databasemotoren skriver til en fil, kan andre brugere læse revisionsfilen, hvis de har tilladelse. Databasemotoren tager ikke en eksklusiv lås, der forhindrer læseoperationer.
da databasemotoren kan få adgang til filen, kan logins, der har tilladelse til kontrolserver, bruge databasemotoren til at få adgang til auditfilerne. Hvis du vil registrere en bruger, der læser revisionsfilen, skal du definere en revision på master.sys.fn_get_audit_file. Dette registrerer logins med KONTROLSERVERTILLADELSE, der har fået adgang til revisionsfilen via
hvis en Revisionsadministrator kopierer filen til en anden placering (til arkivformål osv.), skal ACL ‘ erne på den nye placering reduceres til følgende tilladelser:
-
Revisionsadministrator-Læs / Skriv
-
Revisionslæser-Læs
vi anbefaler, at du genererer revisionsrapporter fra en separat forekomst af Microsoft-serveren, f.eks. en forekomst af Microsoft-serveren, som kun Revisionsadministratorer eller Revisionslæsere har adgang til. Ved at bruge en separat forekomst af databasemotoren til rapportering kan du hjælpe med at forhindre uautoriserede brugere i at få adgang til revisionsposten.
du kan tilbyde yderligere beskyttelse mod uautoriseret adgang ved at kryptere den mappe, hvor revisionsfilen er gemt ved hjælp af vinduer BitLocker-drevkryptering eller vinduer, der krypterer filsystemet.
du kan finde flere oplysninger om de auditposter, der er skrevet til målet, i Audit Records.
oversigt over brug af Server Audit
du kan bruge Server Management Studio til at definere en audit. Når revisionen er oprettet og aktiveret, modtager målet poster.
du kan læse hændelseslogfilerne ved hjælp af hjælpeprogrammet til Begivenhedsfremviser i vinduer. For filmål kan du bruge enten Logfilfremviseren i Server Management Studio eller funktionen fn_get_audit_file til at læse målfilen.
den generelle proces til oprettelse og brug af en revision er som følger.
-
Opret en revision og definer målet.
-
Opret enten en serverrevisionsspecifikation eller databaserevisionsspecifikation, der kortlægges til revisionen. Aktiver revisionsspecifikationen.
-
aktiver revisionen.
-
Læs audithændelserne ved hjælp af vinduet Hændelsesfremviser, Logfilfremviser eller funktionen fn_get_audit_file.
du kan finde flere oplysninger under Opret en Serverrevisions-og Serverrevisionsspecifikation og opret en Serverrevisions-og Databaserevisionsspecifikation.
overvejelser
i tilfælde af en fejl under revisionsinitiering starter serveren ikke. I dette tilfælde kan serveren startes ved at bruge indstillingen-f på kommandolinjen.
når en revisionsfejl får serveren til at lukke ned eller ikke starte, fordi ON_FAILURE=nedlukning er angivet for revisionen, skrives begivenheden MSG_AUDIT_FORCED_SHUT ned til loggen. Da nedlukningen finder sted ved det første møde med denne indstilling, vil begivenheden blive skrevet en gang. Denne begivenhed er skrevet efter fejlmeddelelsen til revisionen, der forårsager nedlukningen. En administrator kan omgå revisionsinducerede nedlukninger ved at starte en Server i Enkeltbrugertilstand ved hjælp af-M-flaget. Hvis du starter i Enkeltbrugertilstand, vil du nedgradere enhver revision, hvor ON_FAILURE=nedlukning er angivet til at køre i den session som ON_FAILURE=fortsæt. Når serveren startes ved hjælp af-M-flaget, vil meddelelsen MSG_AUDIT_SHUT_BYPASSED blive skrevet til fejlloggen.
du kan finde flere oplysninger om indstillinger for servicestart under Indstillinger for start af Databasetjeneste.
vedhæftning af en Database med en revision defineret
vedhæftning af en database, der har en revisionsspecifikation og angiver et GUID, der ikke findes på serveren, vil medføre en forældreløs revisionsspecifikation. Da der ikke findes en revision med et matchende GUID på serverforekomsten, registreres ingen revisionshændelser. For at rette op på denne situation skal du bruge kommandoen alter DATABASE AUDIT SPECIFICATION til at forbinde den forældreløse revisionsspecifikation til en eksisterende serverrevision. Eller brug kommandoen Opret SERVERREVISION til at oprette en ny serverrevision med det angivne GUID.
du kan vedhæfte en database, der har en revisionsspecifikation, der er defineret på den, til en anden udgave af en server, der ikke understøtter en serverrevision, f.eks.
Databasespejling og SERVERREVISION
en database, der har defineret en databaserevisionsspecifikation, og som bruger databasespejling, vil omfatte databaserevisionsspecifikationen. Følgende elementer skal konfigureres for at fungere korrekt på den spejlede:
-
spejlserveren skal have en revision med samme GUID for at gøre det muligt for databaserevisionsspecifikationen at skrive revisionsposter. Dette kan konfigureres ved hjælp af kommandoen Opret revision med GUID =<GUID fra source Server Audit>.
-
for binære filmål skal mirror server service-kontoen have passende tilladelser til det sted, hvor revisionssporet skrives.
-
sikkerhedspolitikken på den computer, hvor mirror-serveren er placeret, skal give tjenestekonto adgang til sikkerheds-eller applikationshændelsesloggen.
Revisionsadministratorer
medlemmer af sysadmins faste serverrolle identificeres som DBO-brugeren i hver database. For at revidere administratorernes handlinger skal du revidere DBO-brugerens handlinger.
oprettelse og styring af revisioner med Transact
du kan bruge DDL-udsagn, dynamiske ledelsesvisninger og-funktioner og katalogvisninger til at implementere alle aspekter af Serverrevision.
Data Definition sprog udsagn
du kan bruge følgende DDL-udsagn til at oprette, ændre og slippe revisionsspecifikationer:
DDL udsagn | beskrivelse |
---|---|
ændre autorisation | ændrer ejerskabet af en securable. |
alter database AUDIT SPECIFICATION | ændrer en database audit specification objekt ved hjælp af funktionen Server Audit. |
ALTER SERVER AUDIT | ændrer et server auditobjekt ved hjælp af funktionen Server Audit. |
alter SERVER AUDIT SPECIFICATION | ændrer et Server audit specification-objekt ved hjælp af funktionen Server Audit. |
Opret database audit SPECIFICATION | opretter et Database audit specification-objekt ved hjælp af funktionen Server audit. |
Opret SERVERREVISION | opretter et serverrevisionsobjekt ved hjælp af SERVERREVISION. |
Opret SERVERREVISIONSSPECIFIKATION | opretter et serverrevisionsspecifikationsobjekt ved hjælp af funktionen Serverrevisions. |
DROP DATABASE AUDIT SPECIFICATION | Dropper et objekt til databaserevisionsspecifikation ved hjælp af funktionen Server Audit. |
DROP SERVER AUDIT | Dropper et Server Audit-objekt ved hjælp af funktionen Server Audit. |
DROP SERVER AUDIT SPECIFICATION | Dropper et Server audit specification-objekt ved hjælp af funktionen Server Audit. |
dynamiske visninger og funktioner
i følgende tabel vises de dynamiske visninger og funktioner, som du kan bruge til Serverrevision.
dynamiske visninger og funktioner | beskrivelse |
---|---|
sys.Dm_audit_actions | returnerer en række for hver revisionshandling, der kan rapporteres i revisionsloggen, og hver revisionshandlingsgruppe, der kan konfigureres som en del af Serverrevision. |
sys.dm_server_audit_status | indeholder oplysninger om den aktuelle tilstand af revisionen. |
sys. dm_audit_class_type_map | returnerer en tabel, der kortlægger class_type-feltet i revisionsloggen til class_desc-feltet i sys. dm_audit_actions. |
Fn_get_audit_file | Returnerer oplysninger fra en revisionsfil oprettet af en serverrevision. |
Katalogvisninger
følgende tabel viser de katalogvisninger, som du kan bruge til serverrevision.
katalog visninger | beskrivelse |
---|---|
sys.database_audit_specifications | indeholder oplysninger om specifikationerne for databasekontrol i en SERVERREVISION på en serverinstans. |
sys.database_audit_specification_details | indeholder oplysninger om databasens revisionsspecifikationer i en SERVERREVISION på en serverforekomst for alle databaser. |
sys.server_audits | indeholder en række for hver SERVERREVISION i en serverforekomst. |
sys.server_audit_specifications | indeholder oplysninger om specifikationerne for serverrevision i en SERVERREVISION på en serverinstans. |
sys.server_audit_specifications_details | indeholder oplysninger om specifikationsoplysningerne for serverrevision (handlinger) i en SERVERREVISION på en serverinstans. |
sys.server_file_audits | indeholder udvidede oplysninger om filrevisionstypen i en SERVERREVISION på en serverinstans. |
tilladelser
hver funktion og kommando til Server Audit har individuelle tilladelseskrav.
for at oprette, ændre eller slippe en Serverrevision eller Serverrevisionsspecifikation kræver serverprincipperne ALTER ANY SERVER AUDIT eller CONTROL SERVER permission. For at oprette, ændre eller slippe en Databaserevisionsspecifikation kræver databaseledere ALTER enhver DATABASEREVISIONSTILLADELSE eller ALTER-eller KONTROLTILLADELSEN i databasen. Derudover skal rektorer have tilladelse til at oprette forbindelse til databasen eller ændre SERVERREVISIONS-eller KONTROLSERVERTILLADELSER.
tilladelsen Vis enhver DEFINITION giver adgang til visning af visninger på serverniveau og VISNINGSDEFINITION giver adgang til visning af visninger på databaseniveau. Nægtelse af disse tilladelser tilsidesætter muligheden for at se katalogvisningerne, selvom rektor har ALTER any SERVER AUDIT eller ALTER any DATABASE AUDIT permissions.
du kan finde flere oplysninger om, hvordan du tildeler rettigheder og tilladelser, i GRANT.
forsigtig
rektorer i sysadmin-rollen kan manipulere med enhver revisionskomponent, og dem i db_ejer-rollen kan manipulere med revisionsspecifikationer i en database. Server Audit vil validere, at et logon, der opretter eller ændrer en revisionsspecifikation, i det mindste har tilladelsen til at ændre enhver DATABASEREVISION. Det gør dog ingen validering, når du vedhæfter en database. Du bør antage, at alle Databaserevisionsspecifikationer kun er så troværdige som de principper i sysadmin-eller db_ejer-rollen.
Opret en Serverrevisions-og Serverrevisionsspecifikation
Opret en Serverrevisions-og Databaserevisionsspecifikation
Vis en Serverrevisions-Log
skriv SERVERREVISIONS-begivenheder til Sikkerhedsloggen
Serveregenskaber (sikkerhedsside)
forklarer, hvordan du aktiverer loginrevision til SERVERREVISIONS-serveren. Revisionsposterne gemmes i Programloggen.
C2 audit mode Server Configuration Option
forklarer C2 security compliance revision mode i server.
kategori for Sikkerhedsrevisionsbegivenheder
forklarer de revisionsbegivenheder, du kan bruge i serverprofiler. Du kan finde flere oplysninger i
trace
forklarer, hvordan Trace Trace kan bruges fra dine egne applikationer til at oprette spor manuelt i stedet for at bruge Profiler.
DDL Triggers
forklarer, hvordan du kan bruge Data Definition Language (DDL) triggers til at spore ændringer i dine databaser.
Microsoft TechNet: Server 2005 sikkerhed og beskyttelse
giver opdaterede oplysninger om serversikkerhed.
Se også
Serverrevisionsgrupper og handlinger
Serverrevisionsregistreringer