SQL Server Audit (Database Engine)

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

Applies to: yesSQL Server (az összes támogatott verzió) Igen Azure SQL felügyelt példány

az SQL Server adatbázismotor vagy egy egyedi adatbázis példányának naplózása magában foglalja az Adatbázismotoron előforduló események nyomon követését és naplózását. Az SQL Server audit segítségével kiszolgálóellenőrzéseket hozhat létre, amelyek kiszolgálószintű események kiszolgálóellenőrzési specifikációit, valamint adatbázisszintű események adatbázis-ellenőrzési specifikációit tartalmazhatják. Az auditált események írhatók az eseménynaplókba vagy az audit fájlokba.

fontos

Azure SQL felügyelt példányon ennek a T-SQL szolgáltatásnak bizonyos viselkedésbeli változásai vannak. Lásd az Azure SQL felügyelt példány T-SQL különbségek az SQL Servertől a T-SQL összes viselkedésbeli változásának részleteit.

az SQL Server auditálásának több szintje van, a telepítés kormányzati vagy szabványkövetelményeitől függően. Az SQL Server Audit biztosítja azokat az eszközöket és folyamatokat, amelyekkel engedélyezni, tárolni és megtekinteni kell az ellenőrzéseket a különböző kiszolgálói és adatbázis-objektumokon.

rögzíthet kiszolgálóellenőrzési műveletcsoportokat példányonként, vagy adatbázis-ellenőrzési műveletcsoportokat vagy adatbázis-ellenőrzési műveleteket adatbázisonként. Az audit esemény minden alkalommal megtörténik, amikor az auditálható művelet megtörténik.

az SQL Server összes kiadása támogatja a kiszolgálói szintű ellenőrzéseket. Minden kiadás támogatja az SQL Server 2016-tól kezdődő adatbázisszintű ellenőrzéseket (13.x) SP1. Ezt megelőzően az adatbázis szintű auditálás az Enterprise, Developer és Evaluation kiadásokra korlátozódott. További információ: az SQL Server 2016 kiadásai által támogatott szolgáltatások.

Megjegyzés

ez a témakör az SQL Serverre vonatkozik. Az SQL adatbázisról lásd: első lépések az SQL adatbázis-naplózás használatával.

SQL Server Audit Components

az audit több elem egyetlen csomagba történő kombinációja a kiszolgálói műveletek vagy adatbázis-műveletek egy meghatározott csoportjához. Az SQL Server audit összetevői együttesen egy auditnak nevezett kimenetet hoznak létre, ugyanúgy, mint a jelentésdefiníció a grafikával és az adatelemekkel kombinálva jelentést hoz létre.

az SQL Server audit kiterjesztett eseményeket használ az audit létrehozásához. További információ a kiterjesztett eseményekről, lásd: kiterjesztett események.

SQL Server Audit

az SQL Server Audit objektum egyetlen kiszolgálói vagy adatbázis-szintű műveletpéldányt, valamint megfigyelendő műveletcsoportokat gyűjt össze. Az ellenőrzés az SQL Server példány szintjén történik. SQL Server-példányonként több ellenőrzést is végezhet.

ellenőrzés megadásakor adja meg az eredmények kimenetének helyét. Ez az audit célállomása. Az audit letiltott állapotban jön létre, és nem ellenőrzi automatikusan a műveleteket. Az ellenőrzés engedélyezése után az ellenőrzés célállomása adatokat kap az ellenőrzésből.

szerver Audit specifikáció

a szerver Audit specifikáció objektum egy audithoz tartozik. Auditonként létrehozhat egy kiszolgálóellenőrzési specifikációt, mivel mindkettő az SQL Server példány hatókörében jön létre.

a kiszolgálóellenőrzési specifikáció számos kiszolgálószintű akciócsoportot gyűjt össze, amelyeket a kiterjesztett események funkció hoz létre. Az ellenőrzési műveletcsoportokat felveheti a kiszolgáló ellenőrzési specifikációjába. Az ellenőrzési műveletcsoportok a műveletek előre meghatározott csoportjai, amelyek az Adatbázismotorban előforduló atomi események. Ezeket a műveleteket elküldik az ellenőrzésnek, amely rögzíti őket a célban.

a kiszolgálószintű ellenőrzési műveletcsoportokat az SQL Server ellenőrzési Műveletcsoportok és műveletek témakör ismerteti.

Adatbázis-ellenőrzési specifikáció

az adatbázis-ellenőrzési specifikáció objektum egy SQL Server-audithoz is tartozik. Létrehozhat egy adatbázis-ellenőrzési specifikációt SQL Server-adatbázisonként ellenőrzésenként.

az adatbázis-ellenőrzési specifikáció a kiterjesztett események funkció által felvetett adatbázis-szintű ellenőrzési műveleteket gyűjti össze. Hozzáadhat ellenőrzési műveletcsoportokat vagy ellenőrzési eseményeket egy adatbázis-ellenőrzési specifikációhoz. Az ellenőrzési események azok az atomi műveletek, amelyeket az SQL Server motor ellenőrizhet. Az ellenőrzési műveletcsoportok a műveletek előre meghatározott csoportjai. Mindkettő az SQL Server adatbázis hatókörében található. Ezeket a műveleteket elküldik az ellenőrzésnek, amely rögzíti őket a célban. Ne tartalmazzon kiszolgálói hatókörű objektumokat, például a rendszernézeteket a felhasználói adatbázis-ellenőrzési specifikációkban.

Adatbázis-szintű ellenőrzési műveletcsoportok és ellenőrzési műveletek leírása az SQL Server ellenőrzési Műveletcsoportok és műveletek témakörben található.

cél

az ellenőrzés eredményeit a rendszer elküldi egy célnak, amely lehet Fájl, A Windows biztonsági eseménynaplója vagy a Windows alkalmazás eseménynaplója. A naplókat rendszeresen felül kell vizsgálni és archiválni kell, hogy megbizonyosodjon arról, hogy a célnak elegendő hely van-e további rekordok írására.

fontos

bármely hitelesített felhasználó képes olvasni és írni a Windows alkalmazás eseménynaplójába. Az alkalmazás eseménynaplója alacsonyabb engedélyeket igényel, mint a Windows biztonsági eseménynaplója, és kevésbé biztonságos, mint a Windows biztonsági eseménynaplója.

A Windows biztonsági naplóba történő íráshoz az SQL Server szolgáltatási fiókot hozzá kell adni a biztonsági ellenőrzések generálása házirendhez. Alapértelmezés szerint a helyi rendszer, a helyi szolgáltatás és a hálózati szolgáltatás a házirend részét képezi. Ez a beállítás a biztonsági házirend beépülő modullal (secpol) konfigurálható.msc). Ezenkívül engedélyezni kell az Objektumhozzáférés biztonsági házirendjét mind a siker, mind a kudarc esetén. Ez a beállítás a biztonsági házirend beépülő modullal (secpol) konfigurálható.msc). Windows Vista vagy Windows Server 2008 rendszerben a parancssorból beállíthatja az alkalmazás által generált részletesebb házirendet az auditházirend program (AuditPol) használatával.exe). A Windows biztonsági naplóba történő írás engedélyezésének lépéseiről további információt az SQL Server-ellenőrzési események írása a biztonsági naplóba című témakörben talál. További információ az Auditpol-ról.exe program, lásd a Tudásbázis 921469. cikkét, a Csoportházirend használata a részletes biztonsági ellenőrzés konfigurálásához. A Windows eseménynaplói globálisak A Windows operációs rendszer számára. A Windows eseménynaplóiról további információt az Eseménynapló áttekintése című témakörben talál. Ha pontosabb engedélyekre van szüksége az ellenőrzéshez, használja a bináris fájl célt.

amikor naplózási információkat ment egy fájlba, a manipuláció megakadályozása érdekében a következő módokon korlátozhatja a fájl helyéhez való hozzáférést:

  • az SQL Server szolgáltatásfióknak mind olvasási, mind írási engedéllyel kell rendelkezniük.

  • a rendszergazdáknak általában olvasási és írási engedélyre van szükségük. Ez azt feltételezi, hogy az ellenőrzési rendszergazdák Windows-fiókok az ellenőrzési fájlok adminisztrálásához, például: másolás különböző megosztásokra, biztonsági mentés stb.

  • az ellenőrzési fájlok olvasására jogosult Auditolvasóknak olvasási engedéllyel kell rendelkezniük.

még akkor is, ha az adatbázis-motor fájlba ír, más Windows-felhasználók elolvashatják az ellenőrzési fájlt, ha rendelkeznek engedéllyel. Az adatbázis-motor nem vesz exkluzív zárat, amely megakadályozza az olvasási műveleteket.

mivel az adatbázismotor hozzáférhet a fájlhoz, a VEZÉRLŐSZERVER jogosultsággal rendelkező SQL Server-bejelentkezők az adatbázismotort használhatják az ellenőrzési fájlok eléréséhez. A naplófájlt olvasó bármely felhasználó rögzítéséhez határozzon meg egy ellenőrzést a master-en.sys.fn_get_audit_file. Ez rögzíti azokat a bejelentkezéseket a VEZÉRLŐSZERVER engedélyével, amelyek az SQL Serveren keresztül jutottak el az ellenőrzési fájlhoz.

ha egy Audit adminisztrátor más helyre másolja a fájlt (archiválási célokra stb.), az új helyen lévő ACL-eket a következő engedélyekre kell csökkenteni:

  • Audit adminisztrátor-olvasás / írás

  • Audit olvasó-olvassa el

javasoljuk, hogy készítsen ellenőrzési jelentéseket az SQL Server egy különálló példányából, például az SQL Server Express egy példányából, amelyhez csak az Auditgazdák vagy az Auditolvasók férhetnek hozzá. Ha az adatbázismotor külön példányát használja a jelentéskészítéshez, megakadályozhatja, hogy illetéktelen felhasználók hozzáférjenek az ellenőrzési rekordhoz.

további védelmet nyújthat a jogosulatlan hozzáférés ellen, ha a naplófájlt tároló mappát a Windows BitLocker meghajtótitkosítás vagy a Windows titkosító fájlrendszer használatával titkosítja.

a célhoz írt naplóbejegyzésekről további információt az SQL Server-naplóbejegyzések című témakörben talál.

az SQL Server Audit használatának áttekintése

az SQL Server Management Studio vagy a Transact-SQL segítségével adhat meg auditot. Az ellenőrzés létrehozása és engedélyezése után a cél megkapja a bejegyzéseket.

a Windows eseménynaplóit a Windows Eseménynapló segédprogramjával olvashatja el. Fájlcélok esetén az SQL Server Management Studio naplófájl-megjelenítőjét vagy az fn_get_audit_file függvényt használhatja a célfájl olvasásához.

az audit létrehozásának és használatának általános folyamata a következő.

  1. hozzon létre egy auditot és határozza meg a célt.

  2. hozzon létre egy kiszolgálói ellenőrzési specifikációt vagy adatbázis-ellenőrzési specifikációt, amely leképezi az ellenőrzést. Engedélyezze az audit specifikációt.

  3. engedélyezze az ellenőrzést.

  4. olvassa el az ellenőrzési eseményeket A Windows Eseménynapló, a naplófájl-megjelenítő vagy az fn_get_audit_file függvény használatával.

további információkért lásd: kiszolgálói Audit és kiszolgálói Audit specifikáció létrehozása, valamint kiszolgálói Audit és adatbázis Audit specifikáció létrehozása.

megfontolások

az ellenőrzés kezdeményezése során fellépő hiba esetén a kiszolgáló nem indul el. Ebben az esetben a kiszolgálót a parancssori-f opcióval lehet elindítani.

ha egy ellenőrzési hiba miatt a kiszolgáló leáll, vagy nem indul el, mert ON_FAILURE=leállítás van megadva az ellenőrzéshez, az MSG_AUDIT_FORCED_SHUTDOWN esemény a naplóba kerül. Mivel a leállítás a Beállítás első találkozásakor következik be, az esemény egyszer íródik. Ez az esemény a leállítást okozó audit hibajelzése után íródik. A rendszergazda megkerülheti az ellenőrzés által kiváltott leállásokat az SQL Server egyfelhasználós módban történő indításával az-m jelzővel. Ha egyfelhasználós módban indul, akkor minden olyan ellenőrzést leminősíthet, ahol az ON_FAILURE=SHUTDOWN beállítás van megadva, hogy az adott munkamenetben ON_FAILURE=CONTINUE néven fusson. Amikor az SQL Server-t az-m jelzővel indítja el, az MSG_AUDIT_SHUTDOWN_BYPASSED üzenet a hibanaplóba kerül.

a szolgáltatás indítási lehetőségeiről további információt az adatbázismotor szolgáltatás indítási beállításai című témakörben talál.

naplózással definiált adatbázis csatolása olyan adatbázis csatolása, amely auditspecifikációval rendelkezik, és olyan GUID azonosítót ad meg, amely nem létezik a kiszolgálón, árva auditspecifikációt eredményez. Mivel a kiszolgálópéldányban nem létezik egy megfelelő GUID azonosítóval rendelkező audit, a rendszer nem rögzít naplózási eseményeket. A helyzet kijavításához használja az Alter DATABASE AUDIT SPECIFICATION parancsot az árva audit specifikáció csatlakoztatásához egy meglévő kiszolgálóellenőrzéshez. Vagy a KISZOLGÁLÓELLENŐRZÉS létrehozása paranccsal hozzon létre egy új kiszolgálóellenőrzést a megadott GUID azonosítóval.

olyan adatbázist csatolhat az SQL Server egy másik kiadásához, amely nem támogatja az SQL Server auditot, például az SQL Server Express, de nem rögzíti az ellenőrzési eseményeket.

Adatbázis-tükrözés és SQL Server Audit

az adatbázis-tükrözést használó adatbázis-ellenőrzési specifikációval rendelkező adatbázis tartalmazza az adatbázis-ellenőrzési specifikációt. A tükrözött SQL-példány megfelelő működéséhez a következő elemeket kell konfigurálni:

  • a tükörkiszolgálónak ugyanazzal a GUID azonosítóval kell rendelkeznie, hogy az adatbázis-ellenőrzési specifikáció lehetővé tegye az ellenőrzési rekordok írását. Ezt a Create AUDIT WITH GUID =<GUID paranccsal lehet konfigurálni a forráskiszolgáló Audit>parancsával.

  • bináris fájlcélok esetén a tükörkiszolgáló szolgáltatásfióknak megfelelő engedélyekkel kell rendelkezniük ahhoz a helyhez, ahol az ellenőrzési nyomvonalat írják.

  • Windows eseménynapló-célok esetén a tükörkiszolgáló számítógépének biztonsági házirendjének lehetővé kell tennie a szolgáltatásfiók hozzáférését a biztonsági vagy alkalmazáseseménynaplóhoz.

naplózási rendszergazdák

a rendszeradmin rögzített kiszolgálói szerepkör tagjai minden adatbázisban dbo-felhasználóként vannak azonosítva. A rendszergazdák műveleteinek ellenőrzéséhez ellenőrizze a dbo felhasználó műveleteit.

auditok létrehozása és kezelése a Transact-SQL

használatával DDL utasításokat, dinamikus kezelési nézeteket és függvényeket, valamint katalógusnézeteket használhat az SQL Server Audit minden aspektusának megvalósításához.

Adatdefiníciós nyelvi utasítások

a következő DDL utasításokkal hozhat létre, módosíthat és dobhat ellenőrzési specifikációkat:

DDL utasítások leírás
ALTER AUTHORIZATION megváltoztatja a tulajdonjogát egy biztonságos.
ALTER DATABASE AUDIT SPECIFICATION megváltoztatja az adatbázis audit specifikáció objektumot az SQL Server Audit funkcióval.
Alter SERVER AUDIT megváltoztatja a szerver audit objektum az SQL Server Audit funkció.
Alter SERVER AUDIT SPECIFICATION megváltoztatja a server audit specification objektumot az SQL Server Audit funkcióval.
adatbázis-ellenőrzési specifikáció létrehozása Adatbázis-ellenőrzési specifikációs objektumot hoz létre az SQL Server audit funkcióval.
KISZOLGÁLÓELLENŐRZÉS létrehozása létrehoz egy kiszolgálóellenőrzési objektumot az SQL Server Audit használatával.
KISZOLGÁLÓELLENŐRZÉSI specifikáció létrehozása létrehoz egy kiszolgálóellenőrzési specifikációs objektumot az SQL Server Audit funkcióval.
DROP DATABASE AUDIT SPECIFICATION egy adatbázis audit specifikációs objektumot dob le az SQL Server Audit funkcióval.
DROP SERVER AUDIT eldob egy szerver Audit objektumot az SQL Server Audit funkcióval.
DROP SERVER AUDIT SPECIFICATION az SQL Server Audit funkció használatával eldobja a server audit specification objektumot.

dinamikus nézetek és függvények

az alábbi táblázat felsorolja az SQL Server-naplózáshoz használható dinamikus nézeteket és függvényeket.

dinamikus nézetek és funkciók leírás
sys.dm_audit_actions egy sort ad vissza minden olyan ellenőrzési művelethez, amely a naplóban jelenthető, valamint minden olyan ellenőrzési műveletcsoporthoz, amely az SQL Server Audit részeként konfigurálható.
sys. dm_server_audit_status tájékoztatást nyújt az ellenőrzés aktuális állapotáról.
sys. dm_audit_class_type_map visszaad egy táblázatot, amely leképezi az ellenőrzési napló class_type mezőjét a sys.dm_audit_actions class_desc mezőjébe.
fn_get_audit_file információkat ad vissza egy szerver audit által létrehozott audit fájlból.

Katalógusnézetek

az alábbi táblázat felsorolja az SQL Server-naplózáshoz használható katalógusnézeteket.

katalógus Megtekintések leírás
sys.database_audit_specifications információkat tartalmaz az adatbázis-ellenőrzés specifikációiról egy kiszolgálópéldány SQL Server-ellenőrzésében.
sys.database_audit_specification_details információkat tartalmaz az összes adatbázis kiszolgálópéldányán lévő SQL Server-ellenőrzés adatbázis-ellenőrzési specifikációiról.
sys.server_audits egy sort tartalmaz minden SQL Server-ellenőrzéshez egy kiszolgálópéldányban.
sys.server_audit_specifications információkat tartalmaz a kiszolgálópéldány SQL Server-ellenőrzésének kiszolgálói ellenőrzési specifikációiról.
sys.server_audit_specifications_details információkat tartalmaz a kiszolgálóellenőrzési specifikáció részleteiről (műveletekről) egy kiszolgálópéldány SQL Server-ellenőrzésében.
sys.server_file_audits kiterjesztett információkat tartalmaz a fájlellenőrzési típusról egy kiszolgálópéldány SQL Server-ellenőrzésében.

engedélyek

az SQL Server Audit minden funkciójának és parancsának egyedi engedélyezési követelményei vannak.

szerver Audit vagy szerver Audit specifikáció létrehozásához, megváltoztatásához vagy elvetéséhez a szerver megbízóinak meg kell változtatniuk a szerver AUDIT vagy a vezérlő szerver engedélyét. Az adatbázis-ellenőrzési specifikáció létrehozásához, megváltoztatásához vagy eldobásához az adatbázis-megbízóknak meg kell változtatniuk az adatbázis-ellenőrzési engedélyt vagy az adatbázis-ellenőrzési engedélyt. Ezenkívül a megbízóknak engedéllyel kell rendelkezniük az adatbázishoz való csatlakozáshoz, vagy módosítaniuk kell a kiszolgálói ellenőrzési vagy vezérlő kiszolgálói engedélyeket.

a VIEW ANY DEFINITION engedély hozzáférést biztosít a kiszolgálószintű ellenőrzési nézetek megtekintéséhez, a VIEW DEFINITION pedig hozzáférést biztosít az adatbázisszintű ellenőrzési nézetek megtekintéséhez. Ezen engedélyek megtagadása felülbírálja a katalógusnézetek megtekintésének lehetőségét, még akkor is, ha a megbízó rendelkezik az ALTER ANY SERVER AUDIT vagy ALTER ANY DATABASE AUDIT engedélyekkel.

a jogok és engedélyek megadásával kapcsolatos további információkért lásd: GRANT (Transact-SQL).

Vigyázat

a rendszergazda szerepkörben szereplő megbízók bármely ellenőrzési komponenst manipulálhatnak, a db_owner szerepkörben lévők pedig az adatbázis ellenőrzési specifikációit. Az SQL Server Audit ellenőrzi, hogy az ellenőrzési specifikációt létrehozó vagy megváltoztató bejelentkezés rendelkezik-e legalább az adatbázis-ellenőrzési engedély megváltoztatásával. Az adatbázis csatolásakor azonban nem érvényesít. Feltételezzük, hogy az összes adatbázis-ellenőrzési specifikáció csak annyira megbízható, mint a sysadmin vagy a db_owner szerepben szereplő megbízók.

szerver Audit és szerver Audit specifikáció létrehozása

szerver Audit és adatbázis Audit specifikáció létrehozása

SQL Server Audit Napló megtekintése

SQL Server Audit események írása a biztonsági naplóba

kiszolgáló tulajdonságai (biztonsági oldal)
elmagyarázza, hogyan kapcsolhatja be az SQL Server bejelentkezési naplózását. Az ellenőrzési rekordokat a Windows Alkalmazásnapló tárolja.

C2 audit mode Server Configuration Option
ismerteti az SQL Server C2 biztonsági megfelelőségi ellenőrzési módját.

biztonsági ellenőrzési Esemény Kategória (SQL Server Profiler)
ismerteti az SQL Server Profiler alkalmazásban használható ellenőrzési eseményeket. További információ: SQL Server Profiler.

SQL Trace
elmagyarázza, hogy az SQL Trace hogyan használható a saját alkalmazásaiban a nyomok manuális létrehozásához az SQL Server Profiler használata helyett.

DDL triggerek
elmagyarázza, hogyan használhatja a Data Definition Language (DDL) triggereket az adatbázisok változásainak nyomon követésére.

Microsoft TechNet: SQL Server TechCenter: Az SQL Server 2005 Security and Protection
naprakész információkat nyújt az SQL Server biztonságáról.

Lásd még:

SQL Server ellenőrzési Műveletcsoportok és műveletek
SQL Server ellenőrzési rekordok