SQL Server Audit (Database Engine)

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

Applies to: yesSQL Server (kaikki tuetut versiot) KylläAzure SQL Managed Instance

SQL Server-tietokantamoottorin tai yksittäisen tietokannan instanssin auditointi edellyttää tietokantamoottorissa esiintyvien tapahtumien seurantaa ja kirjaamista. SQL Server audit-toiminnon avulla voit luoda palvelintarkastuksia, jotka voivat sisältää palvelintason tapahtumien palvelimen auditointimäärityksiä ja tietokantatason tapahtumien tietokannan auditointimäärityksiä. Tarkastetut tapahtumat voidaan kirjoittaa tapahtumalokeihin tai auditointitiedostoihin.

tärkeä

Azure SQL Managed-instanssissa tällä T-SQL-ominaisuudella on tiettyjä käyttäytymismuutoksia. Katso Azure SQL hallittu instanssi T-SQL erot SQL Server tietoja kaikista T-SQL käyttäytymisen muutokset.

SQL Server-palvelimelle on olemassa useita auditointitasoja riippuen asennukselle asetettavista viranomais-tai standardivaatimuksista. SQL Server Audit tarjoaa työkalut ja prosessit, jotka sinun täytyy ottaa käyttöön, Tallentaa ja tarkastella eri palvelin-ja tietokantaobjektien tarkastuksia.

voit tallentaa palvelintarkastustoimintaryhmät instanssikohtaisesti ja joko tietokannan tarkastustoimintaryhmät tai tietokannan tarkastustoimet tietokantakohtaisesti. Auditointitapahtuma tapahtuu aina, kun auditoitavaan toimeen törmätään.

SQL Serverin kaikki versiot tukevat palvelintason tarkastuksia. Kaikki versiot tukevat SQL Server 2016 (13.x) SP1. Sitä ennen tietokantatason auditointi rajoittui yritys -, kehittäjä-ja Arviointipainoksiin. Lisätietoja on SQL Server 2016-versioiden tukemissa ominaisuuksissa.

Huomautus

tämä aihe koskee SQL Serveriä. SQL-tietokannan osalta katso Aloita SQL – tietokannan valvonta.

SQL Server Audit Components

auditointi on useiden elementtien yhdistelmä yhdeksi paketiksi tietylle palvelintoimintojen tai tietokantatoimintojen ryhmälle. SQL Server audit-toiminnon komponentit yhdistyvät tuottamaan tulosteen, jota kutsutaan auditoinniksi, aivan kuten raportin määrittely yhdistettynä grafiikkaan ja tietoelementteihin tuottaa raportin.

SQL Server audit käyttää laajennettuja tapahtumia apuna auditoinnin luomisessa. Lisätietoja laajennetuista tapahtumista on ohjeaiheessa laajennetut tapahtumat.

SQL Server Audit

SQL Server Audit-objekti kerää yksittäisen esiintymän palvelin-tai tietokantatason toimintoja ja toimintaryhmiä valvottavaksi. Auditointi on SQL Server-instanssin tasolla. Sinulla voi olla useita auditointeja SQL Server-instanssia kohti.

kun määrität auditoinnin, määrität tulosteen sijainnin. Tämä on tarkastuksen kohde. Auditointi luodaan invaliditilassa, eikä se automaattisesti auditoi mitään toimintoja. Kun auditointi on otettu käyttöön, auditointikohde saa auditoinnin tiedot.

Server Audit Specification

Server Audit Specification-objekti kuuluu auditointiin. Voit luoda yhden palvelimen auditointimäärityksen auditointia kohti, koska molemmat luodaan SQL Server-instanssialueella.

server audit specification kerää useita laajennettujen tapahtumien ominaisuuden nostamia palvelintason toimintaryhmiä. Voit sisällyttää auditointitoimintaryhmiä palvelimen auditointimääritykseen. Audit-toimintaryhmät ovat ennalta määriteltyjä toimintaryhmiä, jotka ovat tietokantamoottorissa esiintyviä atomisia tapahtumia. Nämä toimet lähetetään tarkastukseen, joka tallentaa ne kohteeseen.

palvelintason auditoinnin toimintaryhmät on kuvattu aihepiirissä SQL Server Audit-toimintaryhmät ja-toiminnot.

Database Audit Specification

the Database Audit Specification object kuuluu myös SQL Server-auditointiin. Voit luoda yhden tietokannan audit specification per SQL Server tietokanta per audit.

database audit specification kerää Tietokantatason auditointitoimet, joita Extended Events-ominaisuus nostaa esiin. Voit lisätä joko audit-toimintaryhmiä tai audit-tapahtumia tietokannan auditointimääritykseen. Audit-tapahtumat ovat atomitoimintoja, jotka voidaan auditoida SQL Server-moottorilla. Tarkastustoimintaryhmät ovat ennalta määriteltyjä toimintaryhmiä. Molemmat ovat SQL Server – tietokannan laajuudessa. Nämä toimet lähetetään tarkastukseen, joka tallentaa ne kohteeseen. Älä sisällytä palvelinspopattuja objekteja, kuten järjestelmänäkymiä, käyttäjätietokannan tarkastusmääritykseen.

Tietokantatason auditointitoimintaryhmät ja auditointitoimet on kuvattu aihepiirissä SQL Server Audit-toimintaryhmät ja-toiminnot.

kohde

tarkastuksen tulokset lähetetään kohteeseen, joka voi olla tiedosto, Windowsin tietoturvan tapahtumaloki tai Windowsin sovelluksen tapahtumaloki. Lokit on tarkistettava ja arkistoitava määräajoin sen varmistamiseksi, että kohteella on riittävästi tilaa ylimääräisten tietueiden kirjoittamiseen.

tärkeä

kuka tahansa todennettu käyttäjä voi lukea ja kirjoittaa Windows-sovelluksen tapahtumalokiin. Sovelluksen tapahtumaloki vaatii pienemmät oikeudet kuin Windowsin tietoturvan tapahtumaloki ja on vähemmän turvallinen kuin Windowsin tietoturvan tapahtumaloki.

kirjoittaminen Windowsin suojauslokiin edellyttää, että SQL Server-palvelutili lisätään luo tietoturva-auditointikäytäntöön. Oletusarvoisesti Paikallinen järjestelmä, Paikallinen palvelu ja verkkopalvelu ovat osa tätä käytäntöä. Tämä asetus voidaan määrittää suojauskäytäntölaajennuksen (secpol) avulla.msc). Lisäksi Audit object access-turvakäytännön on oltava käytössä sekä onnistumisen että epäonnistumisen varalta. Tämä asetus voidaan määrittää suojauskäytäntölaajennuksen (secpol) avulla.msc). Windows Vistassa tai Windows Server 2008: ssa voit asettaa rakeisemman sovelluksen luodun käytännön komentoriviltä tarkastuskäytäntöohjelman (AuditPol) avulla.exe). Lisätietoja Windowsin suojauslokiin kirjoittamisen mahdollistavista vaiheista on ohjeaiheessa Kirjoita SQL Server Audit-tapahtumat suojauslokiin. Lisätietoja Auditpolista.exe-ohjelma, Katso Knowledge Base article 921469, How to use Group Policy to configure detailed security auditing. Windowsin tapahtumalokit ovat maailmanlaajuisia Windows-käyttöjärjestelmälle. Lisätietoja Windowsin tapahtumalokeista on ohjeaiheessa Tapahtumienvalvojan yleiskatsaus. Jos tarvitset tarkempia käyttöoikeuksia auditointiin, käytä binääritiedostokohdetta.

kun tallennat tarkastustietoja tiedostoon peukaloinnin estämiseksi, voit rajoittaa pääsyn tiedoston sijaintiin seuraavilla tavoilla:

  • SQL Server-Palvelutilillä on oltava sekä luku-että Kirjoitusoikeus.

  • auditoinnin ylläpitäjät vaativat yleensä luku-ja kirjoitusoikeudet. Tämä olettaa, että tarkastuksen järjestelmänvalvojat ovat Windows-tilejä, joilla hallinnoidaan tarkastustiedostoja, kuten kopioimalla niitä eri osakkeisiin, tukemalla niitä ja niin edelleen.

  • Audit-lukijoilla, joilla on lupa lukea audit-tiedostoja, on oltava lukuoikeus.

vaikka tietokantamoottori kirjoittaa tiedostoon, muut Windows-käyttäjät voivat lukea audit-tiedoston, jos heillä on lupa. Tietokantamoottori ei ota eksklusiivista lukkoa, joka estää lukutoiminnot.

koska tietokantamoottori voi käyttää tiedostoa, SQL Server-kirjautumiset, joilla on ohjauspalvelimen käyttöoikeudet, voivat käyttää tietokantamoottoria tarkastustiedostojen käyttämiseen. Jos haluat tallentaa käyttäjän, joka lukee tarkastustiedostoa, määrittele tarkastus Masterissa.sys.fn_get_audit_tiedosto. Tämä tallentaa kirjautumiset ohjauspalvelimen käyttöoikeuksilla, jotka ovat päässeet tarkastustiedostoon SQL Serverin kautta.

jos auditoinnin valvoja kopioi tiedoston toiseen paikkaan (arkistointitarkoituksiin jne.), uuden sijainnin ACL-käyttöoikeudet on vähennettävä seuraaviin käyttöoikeuksiin:

  • Audit Administrator-Lue / Kirjoita

  • Audit Reader-Lue

suosittelemme, että luot auditointiraportit erillisestä SQL Server-esiintymästä, kuten SQL Server Express-esiintymästä, johon vain Audit-järjestelmänvalvojilla tai Audit-lukijoilla on pääsy. Käyttämällä erillistä esiintymää tietokantamoottorin raportointi, voit auttaa estämään luvattomia käyttäjiä saamasta pääsyn tarkastustiedot.

voit tarjota lisäsuojaa luvattomalta käytöltä salaamalla kansion, johon audit-tiedosto on tallennettu, käyttämällä Windows BitLocker Drive-salausta tai Windows Encrypting-tiedostojärjestelmää.

lisätietoja kohteelle kirjoitetuista tarkastustiedoista on SQL Server Audit Recordsissa.

yleiskatsaus SQL Server Audit

voit määrittää auditoinnin SQL Server Management studion tai Transact-SQL: n avulla. Kun auditointi on luotu ja otettu käyttöön, kohde saa merkintöjä.

voit lukea Windowsin tapahtumalokit Windowsin Tapahtumienvalvonta-apuohjelman avulla. Tiedostokohteissa voit lukea kohdetiedoston joko SQL Server Management Studion lokitiedostojen katseluohjelmalla tai fn_get_audit_file-toiminnolla.

yleinen auditoinnin laatimis-ja käyttöprosessi on seuraava.

  1. luo auditointi ja määritä kohde.

  2. luo joko palvelimen tarkastusspesifikaatio tai tietokannan tarkastusspesifikaatio, joka kartoittaa tarkastuksen. Ota käyttöön auditointimääritys.

  3. ota tarkastus käyttöön.

  4. Lue tarkastustapahtumat käyttämällä Windows Event Viewer -, Log File Viewer-tai fn_get_audit_file-toimintoa.

lisätietoja on ohjeaiheessa palvelimen auditoinnin ja palvelimen auditoinnin erittely sekä palvelimen auditoinnin ja tietokannan auditoinnin erittely.

Considerations

jos vika ilmenee tarkastuksen aloittamisen aikana, palvelin ei käynnisty. Tällöin palvelin voidaan käynnistää komentorivin-f-valitsimella.

kun tarkastusvirhe aiheuttaa palvelimen sammumisen tai ei käynnisty, koska on_failure=SHUTDOWN on määritetty tarkastusta varten, MSG_AUDIT_FORCED_SHUTDOWN-tapahtuma kirjoitetaan lokiin. Koska sammutus tapahtuu tämän asetuksen ensimmäisellä kohtaamisella, tapahtuma kirjoitetaan yhden kerran. Tämä tapahtuma kirjoitetaan sulkemisen aiheuttavan tarkastuksen vikaviestin jälkeen. Järjestelmänvalvoja voi ohittaa tarkastuksen aiheuttamat keskeytykset käynnistämällä SQL Serverin yhden käyttäjän tilassa-m-lipulla. Jos aloitat yhden käyttäjän tilassa, vähennät minkä tahansa tarkastuksen luokitusta, jossa ON_FAILURE=SHUTDOWN on määritetty suoritettavaksi kyseisessä istunnossa nimellä ON_FAILURE=CONTINUE. Kun SQL Server käynnistetään-m-lipulla, MSG_AUDIT_SHUTDOWN_BYPASSED-viesti kirjoitetaan virhelokiin.

lisätietoja palvelun käynnistysvaihtoehdoista on kohdassa Database Engine Service Startup Options.

sellaisen tietokannan liittäminen, jonka auditointi on määritelty

sellaisen tietokannan liittäminen, jossa on auditointimääritys ja joka määrittää Guidin, jota ei ole palvelimella, aiheuttaa orvon auditointimäärityksen. Koska palvelimen instanssissa ei ole auditointia, jossa on vastaava GUID, auditointitapahtumia ei tallenneta. Jos haluat korjata tämän tilanteen, käytä ALTER DATABASE AUDIT SPECIFICATION-komentoa ja yhdistä orvoksi jäänyt audit specification olemassa olevaan palvelimen auditointiin. Tai luo uusi palvelintarkastus määritetyllä GUID-tiedostolla käyttämällä CREATE SERVER AUDIT-komentoa.

voit liittää tietokannan, johon on määritelty tarkastusspesifikaatio, toiseen SQL Server-versioon, joka ei tue SQL Server audit-ohjelmaa, kuten SQL Server Express, mutta se ei tallenna tarkastustapahtumia.

tietokannan peilaus ja SQL Server Audit

tietokanta, johon on määritelty tietokannan tarkastusspesifikaatio ja joka käyttää tietokannan peilausta, sisältää tietokannan tarkastusspesifikaation. Jotta peilattu SQL-ilmentymä toimisi oikein, seuraavat kohteet on määritettävä:

  • mirror-palvelimella on oltava auditointi samalla GUID: lla, jotta tietokannan auditointimääritys voi kirjoittaa tarkastustietoja. Tämä voidaan määrittää komennolla CREATE AUDIT, jossa GUID =<GUID source Server Audit>.

  • binääritiedostokohteita varten mirror server-palvelutilillä on oltava asianmukaiset käyttöoikeudet paikkaan, johon kirjausketju kirjoitetaan.

  • Windowsin tapahtumalokin kohteiden osalta sen tietokoneen suojauskäytännön, jossa peilipalvelin sijaitsee, on sallittava palvelutilien pääsy tietoturva-tai sovellustapahtumalokiin.

Auditing järjestelmänvalvojat

sysadmin fixed server-roolin jäsenet tunnistetaan kunkin tietokannan dbo-käyttäjiksi. Voit tarkastaa järjestelmänvalvojien toimia tarkastamalla DBO-käyttäjän toimet.

auditointien luominen ja hallinta Transact-SQL

voit käyttää DDL-lausuntoja, dynaamisia hallintanäkymiä ja toimintoja sekä luettelonäkymiä SQL Server Audit-auditoinnin kaikkien osa-alueiden toteuttamiseen.

Data Definition Language Statements

voit käyttää seuraavia DDL-lausekkeita auditointimääritysten luomiseen, muuttamiseen ja pudottamiseen:

DDL: n lausumat kuvaus
ALTER AUTHORIZATION muuttaa vakuudellisen omistusoikeuden.
ALTER DATABASE AUDIT SPECIFICATION muuttaa tietokannan auditointimääritysobjektin käyttämällä SQL Server Audit-ominaisuutta.
ALTER SERVER AUDIT muuttaa palvelimen tarkastusobjektin käyttämällä SQL Server Audit-ominaisuutta.
ALTER SERVER AUDIT SPECIFICATION muuttaa server audit specification-objektin käyttämällä SQL Server Audit-ominaisuutta.
luo tietokannan AUDITOINTIMÄÄRITYS luo tietokannan auditointimääritysobjektin käyttämällä SQL Server audit-ominaisuutta.
luo PALVELINTARKASTUS luo palvelintarkastusobjektin SQL Server Audit-ohjelmalla.
luo palvelimen AUDITOINTIMÄÄRITYS luo palvelimen auditointimääritysobjektin käyttämällä SQL Server Audit-ominaisuutta.
DROP DATABASE AUDIT SPECIFICATION Drops a database audit specification object using the SQL Server Audit feature.
DROP SERVER AUDIT pudottaa palvelimen Tarkastusobjektin käyttäen SQL Server Audit-ominaisuutta.
DROP SERVER AUDIT SPECIFICATION Drops a server audit specification object using the SQL Server Audit feature.

dynaamiset näkymät ja funktiot

seuraavassa taulukossa on lueteltu dynaamiset näkymät ja funktiot, joita voit käyttää SQL Server-auditoinnissa.

dynaamiset näkymät ja funktiot kuvaus
sys.dm_audit_actions palauttaa rivin jokaiselle tarkastustoimelle, joka voidaan ilmoittaa tarkastuslokissa, ja jokaiselle audit-toimintoryhmälle, joka voidaan määrittää osaksi SQL Server Auditia.
sys. dm_server_audit_status antaa tietoja tarkastuksen nykytilasta.
sys. dm_audit_class_type_map palauttaa taulukon, joka kartoittaa tarkastuslokin class_type-kentän SYS.dm_audit_actions-kentän class_desc.
fn_get_audit_file palauttaa tiedot palvelimen tarkastuksen luomasta tarkastustiedostosta.

luettelonäkymät

seuraavassa taulukossa on lueteltu luettelonäkymät, joita voit käyttää SQL Server-auditoinnissa.

luettelonäkymät kuvaus
sys.database_audit_specifications sisältää tietoja SQL Server-auditoinnin tietokantamäärityksistä palvelinilmaisussa.
sys.database_audit_specification_details sisältää tietoja SQL Server-auditoinnin tietokantaeritelmistä palvelinesimerkissä kaikille tietokannoille.
sys.server_audits sisältää yhden rivin jokaista SQL Server-auditointia varten palvelinilmaisimessa.
sys.server_audit_specifications sisältää tietoja SQL Server-auditoinnin määrityksistä palvelinilmaisussa.
sys.server_audit_specifications_details sisältää tietoja SQL Server audit-palvelimen auditoinnin yksityiskohdista (toimista).
sys.server_file_audits Sisältää laajennettuja tietoja tiedoston tarkastustyypistä SQL Server-auditoinnissa palvelinilmaisimessa.

käyttöoikeudet

jokaisella SQL Server Audit-toiminnon ominaisuudella ja komennolla on yksilölliset käyttöoikeusvaatimukset.

luodakseen, muuttaakseen tai pudottaakseen Palvelintarkastus-tai Palvelintarkastusmäärityksen, palvelinpäälliköt vaativat muuttaa PALVELINTARKASTUS-tai OHJAUSPALVELINOIKEUKSIA. Luodakseen, muuttaakseen tai pudottaakseen tietokannan Auditointimäärityksen, tietokannan rehtorit vaativat muuttaa minkä tahansa tietokannan AUDITOINTIOIKEUDEN tai muuttaa tai hallita tietokannan käyttöoikeutta. Lisäksi päämiehillä on oltava lupa muodostaa yhteys tietokantaan tai muuttaa palvelimen auditointia tai hallita palvelimen käyttöoikeuksia.

VIEW ANY DEFINITION rights tarjoaa oikeuden tarkastella palvelintason auditointinäkymiä ja VIEW DEFINITION antaa oikeuden tarkastella tietokannan tason auditointinäkymiä. Näiden käyttöoikeuksien kieltäminen, ohittaa mahdollisuuden tarkastella luettelonäkymiä, vaikka päämiehellä olisi muuttaa palvelimen auditointia tai muuttaa tietokannan AUDITOINTIOIKEUKSIA.

lisätietoja oikeuksien ja käyttöoikeuksien myöntämisestä on ohjeaiheessa GRANT (Transact-SQL).

varovaisuus

sysadmin-roolissa olevat päämiehet voivat peukaloida mitä tahansa auditointikomponenttia ja db_owner-roolissa olevat voivat peukaloida tietokannan auditointimäärityksiä. SQL Server Audit vahvistaa, että kirjautumisella, joka luo tai muuttaa auditointimääritystä, on ainakin ALTER ANY DATABASE AUDIT-oikeudet. Kuitenkin, se ei vahvista, kun liität tietokantaan. Sinun pitäisi olettaa, että kaikki tietokannan Auditointimääritykset ovat vain yhtä luotettavia kuin ne rehtorit sysadmin-tai db_owner-roolissa.

Create a Server Audit and Server Audit Specification

Create a Server Audit and Database Audit Specification

View a SQL Server Audit Log

Write SQL Server Audit Events to the Security Log

Server Properties (Security Page)
Explains how to turva auditing for SQL Server. Tarkastustiedot tallennetaan Windowsin sovelluslokiin.

C2 audit mode Server Configuration Option
Explains the C2 security compliance auditing mode in SQL Server.

Security Audit Event Category (SQL Server Profiler)
Explains the audit events you can use in SQL Server Profiler. Lisätietoja, Katso SQL Server Profiler.

SQL Trace
selittää, miten SQL Trace-sovellusta voi käyttää omien sovellusten sisällä luomaan jälkiä manuaalisesti SQL Server-Profilerin sijaan.

DDL-käynnistimet
selittää, miten voit käyttää DDL-käynnistimiä (Data Definition Language) – käynnistimiä seurataksesi muutoksia tietokantoihisi.

Microsoft TechNet: SQL Server TechCenter: SQL Server 2005 Security and Protection
tarjoaa ajantasaista tietoa SQL Server securitysta.

Katso myös

SQL Server Audit Action Groups and Actions
SQL Server Audit Records