SQL Server Audit (Database Engine)

  • 01/01/2020
  • 13 minutes to read
    • D
    • v
    • M
    • M
    • D
    • +8

Applies to: yes SQL Server (alle støttede versjoner)JaAzure SQL Managed Instance

Overvåking av en forekomst AV SQL Server-Databasemotoren eller en individuell database innebærer sporing og logging av hendelser som oppstår På Databasemotoren. MED SQL Server-revisjon kan du opprette serverrevisjoner, som kan inneholde serverrevisjonsspesifikasjoner for hendelser på servernivå og databaseovervåkingsspesifikasjoner for hendelser på databasenivå. Reviderte hendelser kan skrives til hendelsesloggene eller til overvåkingsfiler.

Viktig

på Azure SQL-Administrert Forekomst har DENNE T-SQL-funksjonen visse endringer i virkemåten. Se Azure SQL Managed Instance t-SQL-forskjeller fra SQL Server for detaljer om ALLE endringer I t-SQL-virkemåten.

det finnes flere overvåkningsnivåer for SQL Server, avhengig av myndighetskrav eller standardkrav for installasjonen. SQL Server Audit inneholder verktøyene og prosessene du må ha for å aktivere, lagre og vise revisjoner på ulike server-og databaseobjekter.

du kan registrere serverovervåkingsgrupper per forekomst, og enten databaseovervåkingsgrupper eller databaseovervåkingshandlinger per database. Tilsynshendelsen vil skje hver gang den reviderbare handlingen oppstår.

alle versjoner AV SQL Server støtte servernivå revisjoner. Alle utgaver støtter revisjoner på databasenivå som begynner MED SQL Server 2016 (13.x) SP1. Før det var overvåking av databasenivå begrenset Til Enterprise -, Developer-og Evalueringsutgaver. Hvis Du vil ha Mer informasjon, kan Du se Funksjoner Som Støttes Av Utgavene AV SQL Server-2016.

Merknad

dette emnet gjelder FOR SQL Server. FOR SQL Database, kan Du se Komme i gang MED SQL database overvåking.

SQL Server Audit Components

en revisjon er kombinasjonen av flere elementer i en enkelt pakke for en bestemt gruppe serverhandlinger eller databasehandlinger. KOMPONENTENE I SQL Server audit kombineres for å produsere en utgang som kalles en revisjon, akkurat som en rapportdefinisjon kombinert med grafikk og dataelementer produserer en rapport.

sql Server-overvåking bruker Utvidede Hendelser til å opprette en overvåking. Hvis Du vil ha Mer informasjon om Utvidede Hendelser, kan Du se Utvidede Hendelser.

SQL Server-Revisjon

Sql Server-Overvåkingsobjektet samler inn en enkelt forekomst av handlinger på server-eller databasenivå og grupper av handlinger som skal overvåkes. Tilsynet er PÅ SQL Server-forekomstnivå. Du kan ha flere revisjoner per SQL Server-forekomst.

når du definerer en revisjon, angir du plasseringen for resultatet av resultatene. Dette er revisjonsdestinasjonen. Revisjonen opprettes i deaktivert tilstand, og overvåker ikke automatisk noen handlinger. Når revisjonen er aktivert, mottar overvåkingsdestinasjonen data fra revisjonen.

Server Audit Specification

Objektet Server Audit Specification tilhører en revisjon. Du kan opprette en serverrevisjonsspesifikasjon per revisjon, fordi begge er opprettet i SQL Server-forekomstomfanget.

serverrevisjonsspesifikasjonen samler inn mange handlingsgrupper på servernivå som er opprettet av Funksjonen Utvidede Hendelser. Du kan inkludere overvåkingshandlingsgrupper i en serverrevisjonsspesifikasjon. Revisjonshandlingsgrupper er forhåndsdefinerte grupper av handlinger, som er atomhendelser som forekommer i Databasemotoren. Disse handlingene sendes til revisjonen, som registrerer dem i målet.

overvåkingsgrupper På servernivå er beskrevet i EMNET HANDLINGSGRUPPER OG Handlinger For Sql Server-Overvåking.

Database Audit Specification

Objektet Database Audit Specification tilhører også EN SQL Server-revisjon. Du kan opprette en database revisjon spesifikasjon per SQL Server-database per revisjon.

databaseovervåkingsspesifikasjonen samler overvåkingshandlinger på databasenivå som er opprettet Av Funksjonen Utvidede Hendelser. Du kan legge til overvåkingshandlingsgrupper eller overvåkingshendelser i en databaseovervåkingsspesifikasjon. Overvåkingshendelser er atomhandlinger som KAN revideres AV SQL Server-motoren. Revisjonshandlingsgrupper er forhåndsdefinerte grupper av handlinger. BEGGE er på SQL Server database omfang. Disse handlingene sendes til revisjonen, som registrerer dem i målet. Ikke inkluder objekter med serveromfang, for eksempel systemvisninger, i en revisjonsspesifikasjon for brukerdatabaser.

overvåkingsgrupper og overvåkingshandlinger På databasenivå er beskrevet i EMNET SQL Server-Overvåkingsgrupper Og-Handlinger.

Mål

resultatene av en revisjon sendes til et mål, som kan være en fil, Hendelsesloggen For Windows-Sikkerhet eller Hendelsesloggen For Windows-Programmet. Logger må gjennomgås og arkiveres regelmessig for å sikre at målet har nok plass til å skrive flere poster.

Viktig

alle godkjente brukere kan lese og skrive til hendelsesloggen For Windows-Programmet. Hendelsesloggen for Programmet krever lavere tillatelser enn hendelsesloggen For Windows-Sikkerhet og er mindre sikker enn hendelsesloggen For Windows-Sikkerhet.

Skriving Til Sikkerhetsloggen For Windows krever AT SQL Server-tjenestekontoen legges Til I Policyen Generer sikkerhetsrevisjoner. Som standard er Det Lokale Systemet, Den Lokale Tjenesten Og Nettverkstjenesten en del av denne policyen. Denne innstillingen kan konfigureres ved hjelp av snapin-modulen sikkerhetspolicy (secpol.msc). I tillegg Må Sikkerhetspolicyen For Overvåkingsobjekttilgang være aktivert for Både Suksess og Fiasko. Denne innstillingen kan konfigureres ved hjelp av snapin-modulen sikkerhetspolicy (secpol.msc). I Windows Vista eller Windows Server 2008, kan du angi mer detaljert program generert policyen fra kommandolinjen ved hjelp av programmet overvåkingspolicy (AuditPol.exe). Hvis du vil ha mer informasjon om trinnene for å aktivere skriving Til Windows-sikkerhetsloggen, kan Du se Skrive SQL Server-Overvåkingshendelser Til Sikkerhetsloggen. For mer informasjon Om Revisjonenpol.exe program, se Knowledge Base-artikkel 921469, Slik bruker Du Gruppepolicy til å konfigurere detaljert sikkerhetsrevisjon. Windows-hendelsesloggene er globale For Windows-operativsystemet. Hvis du vil ha Mer informasjon Om Hendelsesloggene I Windows, kan Du se Oversikt Over Hendelsesliste. Hvis du trenger mer presise tillatelser på revisjonen, bruk binærfilmålet.

når du lagrer overvåkingsinformasjon i en fil, kan du begrense tilgangen til filplasseringen på følgende måter for å forhindre manipulering:

  • SQL Server-Tjenestekontoen må ha Både Lese – og Skrivetillatelse.

  • Revisjonsadministratorer krever Vanligvis Lese-Og Skrivetillatelse. Dette forutsetter At Revisjonsadministratorer Er Windows-kontoer for administrasjon av revisjonsfiler, for eksempel: kopiere dem til forskjellige aksjer, sikkerhetskopiere dem og så videre.

  • Revisjonslesere som er autorisert til å lese revisjonsfiler, må ha Lesetillatelse.

selv Når Databasemotoren skriver til en fil, kan andre Windows-brukere lese revisjonsfilen hvis de har tillatelse. Databasemotoren tar ikke en eksklusiv lås som forhindrer leseoperasjoner.

Fordi Databasemotoren har tilgang til filen, KAN SQL Server-pålogginger som HAR TILLATELSEN CONTROL SERVER bruke Databasemotoren til å få tilgang til overvåkingsfilene. Hvis du vil registrere alle brukere som leser revisjonsfilen, definerer du en revisjon på master.sys.fn_get_audit_file. Dette registrerer pålogginger MED CONTROL SERVER-tillatelse som har tilgang til overvåkingsfilen VIA SQL Server.

hvis En Overvåkingsadministrator kopierer filen til en annen plassering (for arkivformål og så videre), Skal Aclene på den nye plasseringen reduseres til følgende tillatelser:

  • Revisjonsadministrator-Les / Skriv

  • Audit Reader-Les

vi anbefaler at du genererer overvåkingsrapporter fra en egen FOREKOMST AV SQL Server, for eksempel EN forekomst AV SQL Server Express, som Bare Overvåkingsadministratorer eller Overvåkingslesere har tilgang til. Ved å bruke en egen forekomst Av Databasemotoren for rapportering, kan du bidra til å hindre at uautoriserte brukere får tilgang til overvåkingsoppføringen.

du kan tilby ekstra beskyttelse mot uautorisert tilgang ved å kryptere mappen der overvåkingsfilen er lagret Ved Hjelp Av Windows BitLocker Drive Encryption Eller Windows Encrypting File System.

hvis du vil ha mer informasjon om overvåkingsoppføringer som er skrevet til målet, kan DU se SQL Server-Overvåkingsoppføringer.

Oversikt Over BRUK AV SQL Server-Overvåking

DU kan bruke SQL Server Management Studio Eller Transact-SQL til å definere en overvåking. Når revisjonen er opprettet og aktivert, vil målet motta oppføringer.

Du kan lese hendelsesloggene I Windows ved hjelp Av Hendelsesliste-verktøyet I Windows. For filmål kan Du bruke Loggfilviseren I SQL Server Management Studio eller fn_get_audit_file-funksjonen til å lese målfilen.

den generelle prosessen for å opprette og bruke en revisjon er som følger.

  1. Opprett en revisjon og definer målet.

  2. Opprett enten en server audit specification eller database audit specification som tilordner til revisjonen. Aktiver revisjonsspesifikasjonen.

  3. Aktiver revisjonen.

  4. Les overvåkingshendelsene ved Hjelp Av Windows Hendelsesliste, Loggfilvisning eller fn_get_audit_file-funksjonen.

Hvis Du vil Ha mer informasjon, kan Du Se Opprette En Serverrevisjons-Og Serverrevisjonsspesifikasjon og Opprette En Serverrevisjons-og Databasevurderingsspesifikasjon.

Betraktninger

i tilfelle feil under oppstart av revisjon, starter ikke serveren. I dette tilfellet kan serveren startes ved å bruke-f-alternativet på kommandolinjen.

NÅR en overvåkingsfeil fører til at serveren avsluttes eller ikke starter fordi ON_FAILURE=AVSLUTNING er angitt for overvåkingen, SKRIVES msg_audit_forced_shutdown-hendelsen TIL loggen. Fordi nedleggelsen vil skje på det første møtet i denne innstillingen, vil hendelsen bli skrevet en gang. Denne hendelsen er skrevet etter feilmeldingen for revisjonen som forårsaker avslutning. En administrator kan omgå overvåkingsinduserte avslutninger ved å starte SQL Server i Enkeltbrukermodus ved hjelp av-m-flagget. Hvis Du starter I Enkeltbrukermodus, nedgraderer du enhver revisjon der ON_FAILURE=SHUTDOWN er angitt for å kjøre i den økten som ON_FAILURE=CONTINUE. NÅR SQL Server startes ved hjelp av-m-flagget, SKRIVES msg_audit_shutdown_bypassed meldingen TIL feilloggen.

hvis du vil ha mer informasjon om alternativer for oppstart av tjenesten, kan Du se Alternativer For Oppstart Av Tjenesten For Database Engine.

Legge Ved En Database Med En Overvåkingsdefinert

Legge Ved en database som har en overvåkingsspesifikasjon og angir EN GUID som ikke finnes på serveren, vil føre til en foreldreløs overvåkingsspesifikasjon. Fordi en overvåking med en samsvarende GUID ikke finnes på serverforekomsten, registreres ingen overvåkingshendelser. Hvis du vil løse dette problemet, kan du bruke KOMMANDOEN ENDRE DATABASEOVERVÅKINGSSPESIFIKASJON til å koble den foreldreløse overvåkingsspesifikasjonen til en eksisterende serverrevisjon. Du kan også bruke KOMMANDOEN OPPRETT SERVERREVISJON til å opprette en ny serverrevisjon med den angitte GUID-EN.

du kan knytte en database som har en overvåkingsspesifikasjon definert på DEN til en annen utgave AV SQL Server som ikke støtter SQL Server-overvåking, for EKSEMPEL SQL Server Express, men det vil ikke registrere overvåkingshendelser.

Databasespeiling Og SQL Server-Overvåking

en database som har en databaseovervåkingsspesifikasjon definert og som bruker databasespeiling, inkluderer databaseovervåkingsspesifikasjonen. Hvis du vil fungere på den speilede SQL-forekomsten, må følgende elementer konfigureres:

  • speilserveren må ha en revisjon med SAMME GUID for å aktivere databasevurderingsspesifikasjonen for å skrive overvåkingsposter. Dette kan konfigureres ved hjelp av kommandoen CREATE AUDIT WITH GUID = < GUID fra source Server Audit>.

  • for mål for binære filer må tjenestekontoen for speilserver ha nødvendige tillatelser til stedet der revisjonssporet skrives.

  • for Windows hendelseslogg mål, må sikkerhetspolicyen på datamaskinen der speilserveren er plassert gi tjenestekontotilgang til hendelsesloggen for sikkerhet eller program.

Overvåking Administratorer

Medlemmer av sysadmin fast server rolle identifiseres som dbo brukeren i hver database. For å overvåke handlinger av administratorer, revidere handlingene til dbo brukeren.

Opprette Og Administrere Revisjoner Med Transact-SQL

DU kan bruke DDL-setninger, dynamiske administrasjonsvisninger og-funksjoner og katalogvisninger til å implementere alle aspekter av SQL Server-Overvåking.

Data Definition Language-Setninger

DU kan bruke FØLGENDE DDL-setninger til å opprette, endre og slippe overvåkingsspesifikasjoner:

DDL-setninger Beskrivelse
ENDRE AUTORISASJON Endrer eierskapet til en securable.
ENDRE DATABASEOVERVÅKINGSSPESIFIKASJONEN Endrer et objekt for databaseovervåkingsspesifikasjon ved HJELP AV SQL Server-Overvåkingsfunksjonen.
ENDRE SERVERREVISJON Endrer et serverrevisjonsobjekt ved HJELP AV SQL Server-Overvåkingsfunksjonen.
ALTER SERVER AUDIT SPECIFICATION Endrer et server audit specification-objekt ved HJELP AV SQL Server Audit-funksjonen.
OPPRETT DATABASEOVERVÅKINGSSPESIFIKASJON Oppretter et objekt for databaseovervåkingsspesifikasjon ved HJELP AV SQL Server-overvåkingsfunksjonen.
OPPRETT SERVEROVERVÅKING Oppretter et serverovervåkingsobjekt ved HJELP AV SQL Server-Overvåking.
OPPRETT SERVER AUDIT SPECIFICATION Oppretter et server audit specification-objekt ved HJELP AV SQL Server Audit-funksjonen.
SLIPP DATABASE AUDIT SPECIFICATION Drops en database audit specification objekt ved HJELP AV SQL Server Audit funksjonen.
DROP SERVER AUDIT Slipper Et Server Audit-Objekt ved hjelp AV SQL Server Audit-funksjonen.
DROP SERVER AUDIT SPECIFICATION Slipper et server audit specification-objekt ved hjelp AV SQL Server Audit-funksjonen.

Dynamiske Visninger Og Funksjoner

tabellen nedenfor viser dynamiske visninger og funksjon som du kan bruke FOR SQL Server-Overvåking.

Dynamiske visninger og funksjoner Beskrivelse
sys.dm_audit_actions Returnerer en rad for hver overvåkingshandling som kan rapporteres i overvåkingsloggen og hver overvåkingsaksjonsgruppe som kan konfigureres som en DEL AV SQL Server-Overvåking.
sys.dm_server_audit_status Gir informasjon om gjeldende tilstand for revisjonen.
sys. dm_audit_class_type_map Returnerer en tabell som tilordner class_type-feltet i overvåkingsloggen til class_desc-feltet i sys. dm_audit_actions.
fn_get_audit_file Returnerer informasjon fra en overvåkingsfil opprettet av en serverrevisjon.

Katalogvisninger

tabellen nedenfor viser katalogvisninger som du kan bruke TIL SQL Server-overvåking.

Katalogvisninger Beskrivelse
sys.database_audit_specifications Inneholder informasjon om databaseovervåkingsspesifikasjonene i EN SQL Server-overvåking på en serverforekomst.
sys.database_audit_specification_details Inneholder informasjon om databaseovervåkingsspesifikasjonene i EN SQL Server-overvåking på en serverforekomst for alle databaser.
sys.server_audits Inneholder en rad for HVER SQL Server-overvåking i en serverforekomst.
sys.server_audit_specifications Inneholder informasjon om serverovervåkingsspesifikasjonene i EN SQL Server-overvåking på en serverforekomst.
sys.server_audit_specifications_details Inneholder informasjon om spesifikasjonsdetaljer for serverovervåking (handlinger) i EN SQL Server-overvåking på en serverforekomst.
sys.server_file_audits Inneholder lagrer utvidet informasjon om overvåkingstypen fil i EN SQL Server-overvåking på en serverforekomst.

Tillatelser

Hver funksjon og kommando FOR SQL Server-Overvåking har individuelle tillatelseskrav.

hvis du vil opprette, endre eller slippe En Serverrevisjons-Eller Serverrevisjonsspesifikasjon, krever serverprinsipper TILLATELSEN ENDRE ENHVER SERVERREVISJON eller KONTROLLSERVEREN. Hvis du vil opprette, endre Eller slippe En Databaseovervåkingsspesifikasjon, krever databaseprinsipper TILLATELSEN ENDRE ENHVER DATABASEOVERVÅKNING eller ENDRE eller KONTROLLERE-tillatelsen i databasen. I tillegg må oppdragsgivere ha tillatelse til å koble til databasen, ELLER ENDRE SERVERREVISJON eller KONTROLL SERVERTILLATELSER.

TILLATELSEN VIS ENHVER DEFINISJON gir tilgang til å vise overvåkingsvisningene på servernivå, og VISNINGSDEFINISJONEN gir tilgang til å vise overvåkingsvisningene på databasenivå. Fornektelse av disse tillatelsene overstyrer muligheten til å vise katalogvisninger, selv om rektor HAR ENDRE NOEN SERVER REVISJON eller ENDRE NOEN DATABASE REVISJON tillatelser.

HVIS du vil ha mer informasjon om hvordan du gir rettigheter og tillatelser, kan DU SE GRANT (Transact-SQL).

Forsiktig

Rektorer i rollen sysadmin kan tukle med alle overvåkingskomponenter, og De i rollen db_owner kan tukle med overvåkingsspesifikasjoner i en database. SQL Server-Overvåking vil validere at en pålogging som oppretter eller endrer en overvåkingsspesifikasjon har MINST ENDRE NOEN DATABASE REVISJON tillatelse. Det gjør imidlertid ingen validering når du legger ved en database. Du bør anta At Alle Databaseovervåkingsspesifikasjonene bare er like pålitelige som disse prinsippene i rollen sysadmin eller db_owner.

Opprette En Serverrevisjons-Og Serverrevisjonsspesifikasjon

Opprette En Serverrevisjons-Og Databaseovervåkingsspesifikasjon

Vis EN Sql Server-Overvåkingslogg

Skriv SQL Server-Overvåkingshendelser Til Sikkerhetsloggen

Serveregenskaper (Sikkerhetsside)
Forklarer hvordan du aktiverer påloggingsovervåking FOR SQL Server. Revisjonspostene lagres i windows-programloggen.

alternativ for serverkonfigurasjon for c2-overvåkingsmodus For server
Forklarer overvåkingsmodusen for c2 – sikkerhet i SQL Server.

Hendelseskategori For Sikkerhetsovervåking (SQL Server Profiler)
Forklarer overvåkingshendelsene du kan bruke I SQL Server Profiler. HVIS DU vil ha MER informasjon, kan DU se SQL Server Profiler.

SQL Trace
Forklarer hvordan SQL Trace Kan brukes fra dine egne programmer for å opprette spor manuelt, i stedet for Å bruke SQL Server Profiler.

DDL-Utløsere
Forklarer hvordan Du kan bruke DATA Definition Language (DDL) – utløsere til å spore endringer i databasene.

Microsoft TechNet: SQL Server TechCenter: SQL Server 2005 Sikkerhet Og Beskyttelse
Gir oppdatert informasjon om SQL Server-sikkerhet.

Se også

Sql Server-Overvåkingsgrupper og Handlinger
SQL Server-Overvåkingsoppføringer