SQL Server Audit (Database Engine)
- 01/01/2020
- 13 minutes to read
-
- D
- v
- M
- M
- D
-
+8
Applies to: SQL Server (kaikki tuetut versiot) 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.
-
luo auditointi ja määritä kohde.
-
luo joko palvelimen tarkastusspesifikaatio tai tietokannan tarkastusspesifikaatio, joka kartoittaa tarkastuksen. Ota käyttöön auditointimääritys.
-
ota tarkastus käyttöön.
-
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