Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőre vonatkozik: :SQL Server
Azure SQL Managed Instance
Az SQL Server adatbázismotor egy példányának vagy egy önálló adatbázisnak az auditálása magában foglalja a Database Engine eseményeinek nyomon követését és naplózását. SQL Server naplózással kiszolgálói auditokat hozhat létre, amelyek kiszolgálószintű események kiszolgálói naplózási specifikációit és adatbázisszintű események adatbázis-naplózási specifikációit tartalmazhatják. A naplózott események írhatók az eseménynaplókba vagy a naplózási fájlokba.
A SQL Server naplózásának több szintje is van a telepítés kormányzati vagy szabványkövetelményeitől függően. A SQL Server Audit biztosítja azokat az eszközöket és folyamatokat, amelyek lehetővé teszik a naplózás engedélyezését, tárolását és megtekintését különböző kiszolgáló- és adatbázis-objektumokon.
A kiszolgáló audit műveletcsoportokat példányonként, valamint adatbázisonként adatbázis audit műveletcsoportokat vagy adatbázis audit műveleteket rögzíthet. A naplózási esemény minden alkalommal megtörténik, amikor a naplózható művelet megtörténik.
Ez a cikk SQL Server és Azure SQL Managed Instance vonatkozik.
- A SQL Server összes kiadása támogatja a kiszolgálószintű naplózást. A 2016-os (13.x) SQL Server Service Pack 1-es és újabb verzióiban minden kiadás támogatja az adatbázisszintű naplózást. 2016 SQL Server (13.x) előtt az adatbázisszintű naplózás az Enterprise, Developer és Evaluation kiadásokra korlátozódott. További információ: Editions és a 2016 SQL Server támogatott funkciói.
- Az Azure SQL Managed Instance-nél támogatott a SQL Server auditálása, és vannak különbségek az Azure SQL Managed Instance adatbázisai és a SQL Server adatbázisai között.
- Az SQL Database-hez lásd: Auditing for Azure SQL Database.
SQL Server auditálási összetevők
Az audit a kiszolgálóműveletek vagy adatbázisműveletek egy adott csoportjához több elem egyetlen csomagban való kombinálása. A SQL Server audit összetevői egy auditnak nevezett kimenet előállítására szolgálnak, ahogyan a jelentésdefiníciók grafikus és adatelemekkel kombinálva létrehoznak egy jelentést.
SQL Server auditálás a Extended Events használatával segíti az ellenőrzést. A kiterjesztett eseményekről további információt a Bővített események áttekintése című témakörben talál.
SQL Server ellenőrzés
A SQL Server Naplózás objektum egyetlen kiszolgáló- vagy adatbázisszintű műveletpéldányt és figyelendő műveletcsoportot gyűjt. Az ellenőrzés a SQL Server példány szintjén van. Több naplózást is végezhet SQL Server példányonként.
Amikor meghatároz egy auditot, meg kell adnia az eredmények kimenetének helyét. Ez az ellenőrzési cél. Az auditálás letiltott állapotban jön létre, és nem auditál automatikusan semmilyen műveletet. A naplózás engedélyezése után az audit célállomása adatokat fogad az naplózásból.
Kiszolgálónaplózás specifikációja
A kiszolgáló naplózási specifikációja objektum egy audithoz tartozik. Naplózásonként egy kiszolgálói naplózási specifikációt is létrehozhat, mivel mindkettő a SQL Server példány hatókörében jön létre.
A kiszolgáló naplózási specifikációja számos kiszolgálószintű műveletcsoportot gyűjt össze, amelyeket a Kiterjesztett események funkció emelt ki. A auditálási műveletcsoportokat is belefoglalhatja a kiszolgáló auditálási specifikációiba. Ellenőrzési műveletcsoportok előre definiált csoportok, amelyek a Database Engine-ben előforduló alapvető eseményeket tartalmazzák. Ezeket a műveleteket a rendszer elküldi az auditnak, amely rögzíti őket a célban.
A kiszolgálószintű naplózási műveletcsoportokat a SQL Server Naplózási műveletcsoportok és műveletek című cikkben találja.
Jegyzet
A teljesítménykorlátozások miatt a tempdb nem kerül ellenőrzésre, és az ideiglenes táblák sem. Bár a kötegelt műveletcsoport ideiglenes táblákon rögzíti az utasításokat, előfordulhat, hogy nem megfelelően tölti ki az objektumneveket. A forrástábla azonban mindig naplózásra kerül, így biztosítva, hogy a forrástáblából az ideiglenes táblákba beszúrt összes beszúrás rögzítve legyen.
Adatbázis-naplózás specifikációja
A Adatbázis naplózási specifikációja objektum szintén egy SQL Server-naplózáshoz tartozik. Naplónként egy adatbázis-naplózási specifikációt hozhat létre minden egyes SQL Server adatbázisra.
Az adatbázis-naplózási specifikáció összegyűjti a Kiterjesztett események funkció által létrehozott adatbázisszintű naplózási műveleteket. Naplóműveleti csoportokat vagy naplózási eseményeket is hozzáadhat egy adatbázis-naplózási specifikációhoz. Audit események a SQL Server motor által naplózható atomi műveletek. naplózási műveletcsoportok előre definiált műveletcsoportok. Mindkettő az SQL Server adatbázis hatókörében található. Ezeket a műveleteket a rendszer elküldi az auditnak, amely rögzíti őket a célban. A felhasználói adatbázis naplózási specifikációjában ne szerepeltesse a kiszolgálói hatókörű objektumokat, például a rendszernézeteket.
Az adatbázisszintű naplózási műveletcsoportok és a naplózási műveletek a SQL Server Naplózási műveletcsoportok és műveletek című cikkben találhatók.
Cél
A rendszer elküldi az audit eredményeit egy célnak, amely lehet fájl, Windows Biztonság eseménynapló vagy Windows alkalmazás eseménynaplója. A naplókat rendszeres időközönként felül kell vizsgálni és archiválni, hogy a célnak elegendő hely legyen a rekordok írásához.
Fontos
Minden hitelesített felhasználó olvashat és írhat az Windows alkalmazás eseménynaplójába. Az alkalmazás eseménynaplója alacsonyabb engedélyeket igényel, mint a Windows Biztonság eseménynapló, és kevésbé biztonságos, mint a Windows Biztonság eseménynapló.
A Windows Biztonság naplóba való íráshoz hozzá kell adni a SQL Server szolgáltatásfiókot a A biztonsági auditok létrehozása szabályzathoz. Alapértelmezés szerint a helyi rendszer, a helyi szolgáltatás és a hálózati szolgáltatás a szabályzat része. Ez a beállítás a biztonsági szabályzat beépülő modul (secpol.msc) használatával konfigurálható. Emellett engedélyezni kell a Naplózás objektumhoz való hozzáférés biztonsági szabályzatot mind a Sikeres, mind a Hibaesetében. Ez a beállítás a biztonsági szabályzat beépülő modul (secpol.msc) használatával konfigurálható. A Windows Vista vagy a Windows Server 2008 (és újabb verziói) rendszerekben a parancssorból hozhat létre részletesebb alkalmazás által generált házirendet az auditálási házirend program (AuditPol.exe) használatával. A Windows Biztonság naplóba való írás engedélyezésének lépéseiről további információt a A biztonsági naplóba SQL Server naplózási események írása című témakörben talál. A Auditpol.exe programról további információt a Tudásbázis 921469 című cikkben talál, A csoportházirend használata a részletes biztonsági naplózásikonfigurálásához. Az Windows eseménynaplók globálisak az Windows operációs rendszer számára. Az Windows eseménynaplókkal kapcsolatos további információkért lásd: eseménymegtekintő Áttekintés. Ha pontosabb engedélyekre van szüksége az auditáláshoz, használja a bináris fájlcélt.
Ha naplóadatokat ment egy fájlba, a módosítás megakadályozása érdekében a következő módokon korlátozhatja a fájl helyéhez való hozzáférést:
A SQL Server szolgáltatásfióknak olvasási és írási engedéllyel kell rendelkeznie.
Az audit rendszergazdáknak általában olvasási és írási engedélyre van szükségük. Ez feltételezi, hogy az audit rendszergazdák Windows felhasználói fiókok, amelyek az audit fájlok kezelésére szolgálnak, mint például azok másolása különböző megosztásokra, biztonsági másolatok készítése stb.
A naplózási fájlok olvasására jogosult naplóolvasóknak olvasási engedéllyel kell rendelkezniük.
Ha a Database Engine fájlba ír, a többi Windows felhasználó akkor is elolvashatja a naplófájlt, ha rendelkezik engedéllyel. A Database Engine nem foglal le kizárólagos zárolást, amely megakadályozza az olvasási műveleteket.
Mivel a Database Engine hozzáférhet a fájlhoz, SQL Server CONTROL SERVER engedéllyel rendelkező bejelentkezések a Database Engine használhatják a naplózási fájlok eléréséhez. A 2022-SQL Server (16.x) és újabb verzióiban a VIEW SERVER SECURITY AUDIT engedély elegendő a naplózási fájlok fn_get_audit_file használatával történő olvasásához. A felhasználók rögzítéséhez, akik az auditfájlt olvassák, állítson be egy auditot a master.sys.fn_get_audit_file-n. Ez a CONTROL SERVER engedéllyel rendelkező bejelentkezéseket rögzíti, amelyek SQL Server keresztül fértek hozzá a naplózási fájlhoz. További információkért a fn_get_audit_file engedélyekről lásd a sys.fn_get_audit_file dokumentációját.
Ha egy naplózási rendszergazda más helyre másolja a fájlt (archiválás céljából stb.), az új helyen lévő hozzáférés-vezérlési listákat (ACL-eket) a következő engedélyekre kell csökkenteni:
- Felügyeleti rendszergazda – Olvasás/írás
- Ellenőrzési olvasó – Olvasás
Javasoljuk, hogy hozzon létre naplózási jelentéseket a 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 a naplózási rendszergazdák vagy a naplóolvasók férhetnek hozzá. Ha a jelentéskészítéshez a Database Engine egy külön példányát használja, megakadályozhatja, hogy jogosulatlan felhasználók hozzáférjenek a naplózási rekordhoz.
A jogosulatlan hozzáférés ellen további védelmet nyújthat a naplófájlt tároló mappa titkosításával Windows BitLocker meghajtótitkosítás vagy Windows titkosító fájlrendszer használatával.
A célnak íródó ellenőrzési rekordokról további információt a SQL Server Ellenőrzési Rekordok című témakörben talál.
A SQL Server auditálás használatának áttekintése
Az SQL Server Management Studio vagy a Transact-SQL használatával definiálhat ellenőrzést. Az audit létrehozása és engedélyezése után a célobjektum bejegyzéseket kap.
Az Windows eseménynaplókat a eseménymegtekintő segédprogrammal olvashatja el Windows. Fájl célpontok esetén a SQL Server Management Studio Naplófájl-megjelenítőjét vagy a fn_get_audit_file függvénnyel használhatja a célfájl megnyitására.
Az auditálás létrehozásának és használatának általános folyamata a következő.
- Hozzon létre egy auditot, és határozza meg a célt.
- Hozzon létre egy kiszolgálónapló-specifikációt vagy adatbázis-naplózási specifikációt, amely megfelel az auditnak. Engedélyezze az ellenőrzési specifikációt.
- Engedélyezze az auditot.
- Olvassa el a naplózási eseményeket a Windows eseménymegtekintő, Log Fájlmegjelenítő vagy a
fn_get_audit_filefüggvény használatával.
További információ: Kiszolgálói audit- és kiszolgálónapló-specifikáció létrehozása , valamint kiszolgálónaplózási és adatbázis-naplózási specifikáció létrehozása.
Megfontolások
Ha az auditálás kezdeményezése során hiba lép fel, a kiszolgáló nem indul el. Ebben az esetben a kiszolgáló a parancssorban található beállítással -f indítható el.
Ha egy naplózási hiba miatt a kiszolgáló leáll vagy nem indul el, mert ON_FAILURE = SHUTDOWN meg van adva a naplózáshoz, az MSG_AUDIT_FORCED_SHUTDOWN esemény a naplóba lesz írva. Mivel a leállítás a beállítás első találkozásnál történik, az esemény egyszer kerül rögzítésre. Ez az esemény az audit sikertelenségére vonatkozó üzenet után kerül rögzítésre, ami a leállítást okozza. A rendszergazdák a -m jelzővel meg tudják kerülni a naplózás által kiváltott leállításokat, ha SQL Server egyfelhasználós módban indítják el. Ha egyfelhasználós módban indul el, az adott munkamenetben bármelyik naplózást, ahol ON_FAILURE = SHUTDOWN van megadva, ON_FAILURE = CONTINUE-ként fogja visszaminősíteni. Amikor a SQL Server a -m jelzővel kezdi, a MSG_AUDIT_SHUTDOWN_BYPASSED üzenet a hibanaplóba lesz írva.
A szolgáltatásindítási lehetőségekről további információt a Database Engine Szolgáltatásindítási lehetőségek című témakörben talál.
Belső műveletek az Azure SQL Managed Instance-ban
- A Azure SQL Database és Azure SQL Managed Instance
SQLDBControlPlaneFirstPartyAppáltal kezdeményezett események a Azure SQL Database vezérlősík belső Azure függvényei. ASQLDBControlPlaneFirstPartyAppáltal kezdeményezett események az SQL-motor és a Azure Resource Manager közötti belső szinkronizálási művelet részét képezik. Ezek az események az erőforrás-kezelés normál részét képezik, és a Azure megfelelő erőforrás-ábrázoláshoz és működéshez szükségesek.
Adatbázis csatolása definiált auditálással
Ha olyan adatbázist csatol, amely naplózási specifikációval rendelkezik, és olyan GUID-t határoz meg, amely nem létezik a kiszolgálón, árva naplózási specifikációt eredményez. Mivel egy egyező GUID azonosítóval rendelkező naplózás nem létezik a kiszolgálópéldányon, a rendszer nem rögzít naplózási eseményeket. A helyzet megoldásához használja a ALTER DATABASE AUDIT SPECIFICATION parancsot az árva naplózási specifikáció csatlakoztatásához egy meglévő szerver audithoz. Vagy a CREATE SERVER AUDIT paranccsal hozzon létre egy új kiszolgáló auditot a megadott GUID azonosítóval.
Csatolhat egy olyan adatbázist, amely naplós specifikációt határoz meg rajta, a SQL Server egy másik olyan kiadásához, amely nem támogatja SQL Server naplózást, például SQL Server Expresst, de nem rögzíti a naplózási eseményeket.
Adatbázis-tükrözés és SQL Server auditálás
Az adatbázis-naplózási specifikációval rendelkező és adatbázis-tükrözést használó adatbázisok tartalmazzák az adatbázis-naplózás specifikációjá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ükrözési kiszolgálónak ugyanazzal a GUID azonosítóval kell rendelkeznie ahhoz, hogy az adatbázis-ellenőrzési specifikációja naplórekordokat írjon. Ez a parancs
CREATE AUDIT WITH GUID = <guid-from-source-server-audit>használatával konfigurálható.Bináris fájlok esetén a tükrözőkiszolgáló szolgáltatásfiókjának megfelelő engedélyekkel kell rendelkeznie ahhoz a helyhez, ahol az auditnaplót írják.
Az Windows eseménynapló-célok esetében a tükrözési kiszolgálót futtató számítógépen a biztonsági szabályzatnak engedélyeznie kell a szolgáltatásfiókok hozzáférését a biztonsági vagy alkalmazásesemény-naplóhoz.
Rendszergazdai tevékenység auditálása
A sysadmin rögzített kiszolgálói szerepkör tagjai az egyes adatbázisok dbo felhasználójaként vannak azonosítva. A rendszergazdák műveleteinek naplózásához naplózhatja a dbo felhasználó műveleteit.
Engedélyek
A SQL Server-naplózás minden funkciójának és parancsának egyedi engedélykövetelményei vannak.
Kiszolgálónapló vagy kiszolgálónapló-specifikáció létrehozásához, módosításához vagy elvetéséhez a kiszolgáló szerepköröknek szükségük van az engedélyre ALTER ANY SERVER AUDIT vagy CONTROL SERVER. Adatbázis-naplózási specifikáció létrehozásához, módosításához vagy elvetéséhez az adatbázis-tagoknak ALTER ANY DATABASE AUDIT engedélyre vagy a ALTER vagy CONTROL engedélyre van szükségük az adatbázison. Emellett a vezetőknek engedéllyel kell rendelkezniük az adatbázishoz való csatlakozáshoz, vagy ALTER ANY SERVER AUDIT vagy CONTROL SERVER engedéllyel.
Az VIEW ANY DEFINITION engedély hozzáférést biztosít a kiszolgálószintű naplózási nézetek megtekintéséhez, és VIEW DEFINITION hozzáférést biztosít az adatbázisszintű naplózási nézetek megtekintéséhez. Ezeknek az engedélyeknek a megtagadása felülbírálja a katalógusnézetek megtekintésének lehetőségét, még akkor is, ha a szerepkör rendelkezik az ALTER ANY SERVER AUDIT vagy ALTER ANY DATABASE AUDIT engedélyekkel.
A naplózási adatok fn_get_audit_file használatával történő olvasásához a 2019-SQL Server (15.x) és a korábbi verziókhoz CONTROL SERVER engedély szükséges a kiszolgálón, míg a 2022-SQL Server (16.x) és újabb verziókhoz VIEW SERVER SECURITY AUDIT engedély szükséges. További információ: sys.fn_get_audit_file.
További információ a jogosultságok és engedélyek megadásáról: GRANT.
Figyelem
A sysadmin szerepkörben lévő tagok bármilyen naplózási összetevőt módosíthatnak, a db_owner szerepkörben lévő tagok pedig módosíthatják az adatbázis naplózási specifikációit. SQL Server Audit ellenőrzi, hogy egy audit specifikációt létrehozó vagy módosító bejelentkezés rendelkezik-e legalább ALTER ANY DATABASE AUDIT engedéllyel. Az adatbázis csatolásakor azonban nem végez ellenőrzést. Feltételezheti, hogy az adatbázis-naplózási specifikációk csak olyan megbízhatóak, mint a sysadmin vagy db_owner szerepkörben szereplő tagok.
Ellenőrzések létrehozása és kezelése Transact-SQL segítségével
A DDL-utasítások, a dinamikus felügyeleti nézetek és függvények, valamint a katalógusnézetek használatával implementálhatja SQL Server naplózás minden aspektusát.
Adatdefiníciós nyelvi utasítások
A következő DDL-utasítások használatával hozhat létre, módosíthat és elvethet naplózási specifikációkat:
| DDL-utasítások | Leírás |
|---|---|
| ENGEDÉLY VÁLTOZTATÁSA | Megváltoztatja egy védhető objektum tulajdonjogát. |
| ADATBÁZIS AUDIT SPECIFIKÁCIÓ MÓDOSÍTÁSA | Módosít egy adatbázis-naplózási specifikációs objektumot a SQL Server Naplózás funkcióval. |
| ALTER SERVER AUDIT | Módosít egy kiszolgálónapló-objektumot a SQL Server Naplózás funkcióval. |
| ALTER SERVER AUDIT SPECIFIKÁCIÓJA | Módosít egy kiszolgáló audit specifikációs objektumát a SQL Server Auditálás funkcióval. |
| ADATBÁZIS AUDITÁLÁSI SPECIFIKÁCIÓ LÉTREHOZÁSA | Létrehoz egy adatbázis-naplózási specifikáció objektumot a SQL Server naplózási funkcióval. |
| KISZOLGÁLÓI NAPLÓZÁS LÉTREHOZÁSA | Létrehoz egy kiszolgálóellenőrzési objektumot SQL Server Ellenőrzés segítségével. |
| KISZOLGÁLÓ AUDITÁLÁSI SPECIFIKÁCIÓ | Létrehoz egy kiszolgálói naplózási specifikáció objektumot a SQL Server Naplózás funkcióval. |
| TÖRÖLJE AZ ADATBÁZIS AUDIT SPECIFIKÁCIÓJÁT | Az auditálási specifikációs objektum elvetése az adatbázisban a SQL Server Audit funkcióval. |
| DROP SERVER AUDIT | A szerver naplózási objektum eltávolítása a SQL Server naplózási funkció használatával. |
| SZERVER AUDIT SPECIFIKÁCIÓ ELTÁVOLÍTÁSA | A SQL Server naplózási funkcióval elvet egy kiszolgálói auditpecifikációs objektumot. |
Dinamikus nézetek és függvények
Az alábbi táblázat a SQL Server naplózáshoz használható dinamikus nézeteket és függvényeket sorolja fel.
| Dinamikus nézetek és függvények | Leírás |
|---|---|
| sys.dm_audit_actions | Egy sort ad vissza minden olyan auditművelethez, amely a naplóban jelenthető, és minden olyan naplózási műveletcsoportot, amely konfigurálható SQL Server Naplózás részeként. |
| sys.dm_server_audit_status | Az audit jelenlegi állapotáról nyújt tájékoztatást. |
| sys.dm_audit_class_type_map | Egy táblát ad vissza, amely a naplóban található class_type mezőt a sys.dm_audit_actions-ban található class_desc mezőhöz térképezi. |
| fn_get_audit_file | Egy kiszolgálói naplózás által létrehozott auditfájlból származó információkat ad vissza. |
Katalógusnézetek
Az alábbi táblázat felsorolja azokat a katalógusnézeteket, amelyeket SQL Server naplózáshoz használhat.
| Katalógusnézetek | Leírás |
|---|---|
| sys.database_audit_specifications | A kiszolgálópéldány SQL Server auditjában található adatbázis naplózási specifikációkra vonatkozó információkat tartalmaz. |
| sys.database_audit_specification_details | Információkat tartalmaz az adatbázis-naplózási specifikációkról egy SQL Server-naplózásban egy kiszolgálópéldányon az összes adatbázis esetében. |
| sys.server_audits | Egy sort tartalmaz minden SQL Server audithoz egy kiszolgálópéldányban. |
| sys.server_audit_specifications | A kiszolgálói audit specifikációkra vonatkozó információkat tartalmaz egy SQL Server auditban egy kiszolgálópéldányon. |
| sys.server_audit_specifications_details | Információkat tartalmaz a kiszolgálónapló-specifikáció részleteiről (műveletekről) egy SQL Server-naplózásban egy kiszolgálópéldányon. |
| sys.server_fájl_ellenőrzések | A SQL Server audit egy kiszolgálópéldányában található fájl naplózási típusával kapcsolatos kiterjesztett információkat tartalmazza. |