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őkre vonatkozik:SQL Server
Felügyelt Azure SQL-példány
Létrehoz egy kiszolgálónapló-objektumot az SQL Server Audit használatával. További információ: SQL Server Audit (Adatbázismotor).
Transact-SQL szintaxis konvenciók
Syntax
CREATE SERVER AUDIT audit_name
{
TO {
[ FILE ( <file_options> [ ,... n ] ) ]
| APPLICATION_LOG
| SECURITY_LOG
| URL
| EXTERNAL_MONITOR
}
[ WITH ( <audit_options> [ ,... n ] ) ]
[ WHERE <predicate_expression> ]
}
[ ; ]
<file_options> ::=
{
FILEPATH = 'os_file_path'
[ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
[ , { MAX_ROLLOVER_FILES = { integer | UNLIMITED } } | { MAX_FILES = integer } ]
[ , RESERVE_DISK_SPACE = { ON | OFF } ]
}
<audit_options> ::=
{
[ QUEUE_DELAY = integer ]
[ , ON_FAILURE = { CONTINUE | SHUTDOWN | FAIL_OPERATION } ]
[ , AUDIT_GUID = uniqueidentifier ]
[ , OPERATOR_AUDIT = { ON | OFF } ]
[ , RETENTION_DAYS = integer ]
}
<predicate_expression> ::=
{ [ NOT ] <predicate_factor>
[ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }
<predicate_factor> ::=
event_field_name { = | < > | != | > | >= | < | <= | LIKE }
{ number | 'string' }
Arguments
audit_name
Az audit neve. Az SQL Server 2019 (15.x) és a korábbi verziók nem tartalmazhatnak szóközöket az audit nevében.
TO { FILE | APPLICATION_LOG | SECURITY_LOG | URL| EXTERNAL_MONITOR }
Meghatározza a naplózási cél helyét. A beállítások egy bináris fájl, a Windows-alkalmazásnapló vagy a Windows biztonsági naplója. Az SQL Server nem tud írni a Windows biztonsági naplójába anélkül, hogy további beállításokat konfigurál a Windowsban. További információ: SQL Server auditesemények írása a biztonsági naplóba.
A URL cél nem támogatott az SQL Server esetében.
Important
A felügyelt Azure SQL-példányban az SQL Audit kiszolgálószinten működik. A helyek csak lehetnek URL vagy EXTERNAL_MONITOR.
FILEPATH = "os_file_path"
A napló elérési útja. A fájlnév a naplózás neve és a naplózás GUID azonosítója alapján jön létre. Ha ez az elérési út érvénytelen, a naplózás nem jön létre.
FILEPATH a cél nem támogatott a felügyelt Azure SQL-példány esetében. Ehelyett használnia PATH kell.
MAXSIZE = max_size
Megadja a maximális méretet, amelyre a naplózási fájl növekedhet. A max_size értéknek egész számnak kell lennie, amelyet MB, GB, TB vagy UNLIMITED. A max_size minimális mérete 2 MB, a maximális érték pedig 2 147 483 647 TB. Amikor megadja UNLIMITED, a fájl addig nő, amíg meg nem telik a lemez. (0 azt is jelzi, UNLIMITEDhogy .) Ha 2 MB-nál kisebb értéket ad meg, akkor a hiba MSG_MAXSIZE_TOO_SMALLjelentkezik. Az alapértelmezett érték a UNLIMITED.
MAXSIZE a cél nem támogatott a felügyelt Azure SQL-példány esetében.
MAX_ROLLOVER_FILES = { egész szám | KORLÁTLAN }
Megadja a fájlrendszerben az aktuális fájlon kívül megtartandó fájlok maximális számát. Az MAX_ROLLOVER_FILES értéknek egész számnak vagy UNLIMITED. Az alapértelmezett érték a UNLIMITED. Ezt a paramétert akkor értékeli ki a rendszer, ha az audit újraindul (ami akkor fordulhat elő, ha az adatbázismotor példánya újraindul, vagy ha a naplózás ki van kapcsolva, majd újra be van kapcsolva), vagy amikor új fájlra van szükség, mert az MAXSIZE el lett érve. Ha MAX_ROLLOVER_FILES a kiértékelés során a fájlok száma meghaladja a MAX_ROLLOVER_FILES beállítást, a rendszer törli a legrégebbi fájlt. Ennek eredményeképpen, ha a beállítás MAX_ROLLOVER_FILES értéke 0, a rendszer minden alkalommal létrehoz egy új fájlt, amikor kiértékeli a MAX_ROLLOVER_FILES beállítást. A beállítás kiértékelésekor a rendszer csak egy fájlt töröl MAX_ROLLOVER_FILES automatikusan, így ha az érték MAX_ROLLOVER_FILES csökken, a fájlok száma csak akkor csökken, ha a régi fájlokat manuálisan törlik. A megadható fájlok maximális száma 2 147 483 647.
MAX_ROLLOVER_FILES az Azure SQL Managed Instance esetében nem támogatott.
MAX_FILES = egész szám
Meghatározza a létrehozható auditfájlok maximális számát. A naplózás nem kerül át az első fájlra a korlát elérésekor.
MAX_FILES A korlát elérésekor minden olyan művelet, amely további naplózási eseményeket okoz, hibával meghiúsul.
RESERVE_DISK_SPACE = { ON | KI }
Ez a beállítás előre áthelyezi a lemezen lévő fájlt az MAXSIZE értékre. Csak akkor érvényes, ha MAXSIZE nem egyenlő.UNLIMITED Az alapértelmezett érték a OFF.
RESERVE_DISK_SPACE a cél nem támogatott a felügyelt Azure SQL-példány esetében.
QUEUE_DELAY = egész szám
Ezredmásodpercben határozza meg, hogy mennyi idő telik el a naplózási műveletek feldolgozásának kényszerítése előtt. A 0 érték szinkron kézbesítést jelez. A lekérdezések minimális késleltetési 1000 értéke (1 másodperc), amely az alapértelmezett érték. A maximális érték 2147483647 (2 147 483,647 másodperc vagy 24 nap, 20 óra, 31 perc, 23,647 másodperc). Ha érvénytelen számot ad meg, az MSG_INVALID_QUEUE_DELAY hibát okoz.
ON_FAILURE = { FOLYTATÁS | LEÁLLÍTÁS | FAIL_OPERATION }
Azt jelzi, hogy a célnak írt példánynak sikertelennek kell-e lennie, folytatnia vagy le kell állítania az SQL Servert, ha a cél nem tud írni a naplóba. Az alapértelmezett érték a CONTINUE.
CONTINUE
Az SQL Server-műveletek folytatódnak. A naplórekordok nem maradnak meg. A naplózás továbbra is megpróbálja naplózni az eseményeket, és folytatódik, ha a hibafeltétel megoldódott. A folytatási lehetőség kiválasztásával engedélyezhető a nem auditált tevékenység, ami megsértheti a biztonsági szabályzatokat. Használja ezt a lehetőséget, ha az adatbázismotor működésének folytatása fontosabb, mint a teljes naplózás fenntartása.
SHUTDOWN
Kényszeríti az SQL Server-példány leállítását, ha az SQL Server bármilyen okból nem tud adatokat írni a naplózási célba. Az utasítást CREATE SERVER AUDIT végrehajtó bejelentkezésnek rendelkeznie kell az SHUTDOWN SQL Server engedélyével. A leállítási viselkedés akkor is megmarad, ha az SHUTDOWN engedélyt később visszavonják a végrehajtó bejelentkezésből. Ha a felhasználó nem rendelkezik ezzel az engedéllyel, az utasítás meghiúsul, és a naplózás nem jön létre. Akkor használja ezt a lehetőséget, ha egy naplózási hiba veszélyeztetheti a rendszer biztonságát vagy integritását. További információ: SHUTDOWN.
FAIL_OPERATION
Az adatbázisműveletek sikertelenek, ha naplózott eseményeket okoznak. A naplózott eseményeket nem okozó műveletek folytatódhatnak, de nem fordulhatnak elő naplózási események. A naplózás továbbra is megpróbálja naplózni az eseményeket, és folytatódik, ha a hibafeltétel megoldódott. Ezt a lehetőséget akkor használhatja, ha a teljes naplózás fenntartása fontosabb, mint az adatbázismotor teljes hozzáférése.
AUDIT_GUID = egyedi azonosító
Az olyan forgatókönyvek támogatásához, mint az adatbázis-tükrözés vagy az Always On rendelkezésre állási csoportban részt vevő adatbázisok, a naplózáshoz egy adott GUID szükséges, amely megfelel a tükrözött adatbázisban található GUID-nak. A GUID nem módosítható a naplózás létrehozása után.
OPERATOR_AUDIT
Csak a felügyelt Azure SQL-példányra vonatkozik.
Jelzi, hogy a naplózás rögzíti-e a Microsoft támogatási mérnökeinek műveleteit, amikor egy támogatási kérés során hozzá kell férniük a kiszolgálóhoz.
RETENTION_DAYS = egész szám
Csak a felügyelt Azure SQL-példányra és az Azure SQL Database-re vonatkozik.
A naplófájl tárolására használt napok számát jelzi.
predicate_expression
Megadja azt a predikátumkifejezést, amely meghatározza, hogy egy eseményt fel kell-e dolgozni vagy sem. A predikátumkifejezések legfeljebb 3000 karakter hosszúságúak, ami korlátozza a sztringargumentumokat.
event_field_name
A predikátum forrását azonosító eseménymező neve. A naplózási mezőket a sys.fn_get_audit_file ismerteti. Az összes mezőt szűrheti, kivéve file_namea , audit_file_offsetés event_timea .
Bár a mezők és class_type a action_id mezők varcharsys.fn_get_audit_filetípusúak, csak akkor használhatja őket számokkal, ha azok a szűrés predikátumforrásai. A használni class_typekívánt értékek listájának lekéréséhez futtassa a következő lekérdezést:
SELECT spt.[name], spt.[number]
FROM [master].[dbo].[spt_values] spt
WHERE spt.[type] = N'EOD'
ORDER BY spt.[name];
szám
Bármilyen numerikus típus, beleértve a decimálist is. A korlátozás a rendelkezésre álló fizikai memória hiánya, vagy egy olyan szám, amely túl nagy ahhoz, hogy 64 bites egész számként jelenjen meg.
'string'
A predikátum összehasonlítása egy ANSI- vagy Unicode-sztringet igényel. A predikátum-összehasonlító függvények nem hajtanak végre implicit sztringtípus-átalakítást. Ha nem a megfelelő típust adja át, az hibát eredményez.
Remarks
A kiszolgálói naplózás letiltott állapotban jön létre.
A CREATE SERVER AUDIT nyilatkozat egy tranzakció része. Ha visszaállítja a tranzakciót, az utasítás is vissza lesz állítva.
Permissions
Kiszolgálónapló létrehozásához, módosításához vagy elvetéséhez az egyszerű felhasználóknak szükségük van az ALTER ANY SERVER AUDIT engedélyre vagy az engedélyre CONTROL SERVER .
Amikor naplóadatokat ment egy fájlba, korlátozza a fájl helyéhez való hozzáférést, hogy megelőzze a illetéktelen módosítást.
Examples
A. Kiszolgálói naplózás létrehozása fájlcéllal
Az alábbi példa egy bináris fájllal elnevezett HIPAA_Audit kiszolgálónaplót hoz létre célként, és nincs lehetőség.
CREATE SERVER AUDIT HIPAA_Audit
TO FILE (FILEPATH = '\\SQLPROD_1\Audit\');
B. Kiszolgálói naplózás létrehozása Windows-alkalmazásnapló-tárolóval a beállításokkal
Az alábbi példa létrehoz egy kiszolgálói auditot, amely a Windows-alkalmazásnapló célkészletével van elnevezve HIPAA_Audit . Az üzenetsor minden másodpercben meg van írva, és leállítja az SQL Server-motort.
CREATE SERVER AUDIT HIPAA_Audit
TO APPLICATION_LOG
WITH (
QUEUE_DELAY = 1000,
ON_FAILURE = SHUTDOWN
);
C. WHERE záradékot tartalmazó kiszolgálói audit létrehozása
Az alábbi példa létrehoz egy adatbázist, sémát és két táblát a példához. A névvel ellátott DataSchema.SensitiveData tábla bizalmas adatokat tartalmaz, és a táblához való hozzáférést rögzíteni kell a naplózásban.
A névvel ellátott DataSchema.GeneralData tábla nem tartalmaz bizalmas adatokat. Az adatbázis naplózási specifikációja a séma összes objektumához DataSchema való hozzáférést naplózi.
A kiszolgálói naplózás egy WHERE záradékkal jön létre, amely csak a táblára korlátozza a kiszolgálói naplózást SensitiveData . A kiszolgálói naplózás feltételezi, hogy létezik egy naplózási mappa a következő helyen C:\SQLAudit: .
CREATE DATABASE TestDB;
GO
USE TestDB;
GO
CREATE SCHEMA DataSchema;
GO
CREATE TABLE DataSchema.GeneralData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
CREATE TABLE DataSchema.SensitiveData
(
ID INT PRIMARY KEY,
DataField VARCHAR (50) NOT NULL
);
GO
Hozza létre a kiszolgálói naplózást az master adatbázisban:
USE master;
GO
CREATE SERVER AUDIT AuditDataAccess TO FILE (FILEPATH = 'C:\SQLAudit\')
WHERE object_name = 'SensitiveData';
GO
ALTER SERVER AUDIT AuditDataAccess WITH (STATE = ON);
GO
Hozza létre az adatbázis naplózási specifikációját az TestDB adatbázisban:
USE TestDB;
GO
CREATE DATABASE AUDIT SPECIFICATION [FilterForSensitiveData]
FOR SERVER AUDIT [AuditDataAccess]
ADD (SELECT ON SCHEMA::[DataSchema] BY [public])
WITH(STATE = ON);
GO
A naplózási esemény aktiválása a táblákból való kijelöléssel:
SELECT ID,
DataField
FROM DataSchema.GeneralData;
SELECT ID,
DataField
FROM DataSchema.SensitiveData;
GO
Ellenőrizze a szűrt tartalom naplózását:
SELECT *
FROM fn_get_audit_file('C:\SQLAudit\AuditDataAccess_*.sqlaudit', DEFAULT, DEFAULT);
GO
Transact-SQL hivatkozás
- ALTER SERVER AUDIT
- DROP SERVER AUDIT
- KISZOLGÁLÓ AUDITÁLÁSI SPECIFIKÁCIÓ
- ALTER SERVER AUDIT SPECIFIKÁCIÓJA
- SZERVER AUDIT SPECIFIKÁCIÓ ELTÁVOLÍTÁSA
- ADATBÁZIS AUDITÁLÁSI SPECIFIKÁCIÓ LÉTREHOZÁSA
- ADATBÁZIS AUDIT SPECIFIKÁCIÓ MÓDOSÍTÁSA
- TÖRÖLJE AZ ADATBÁZIS AUDIT SPECIFIKÁCIÓJÁT
- ALTER AUTHORIZATION
Kapcsolódó tartalom
- sys.fn_get_audit_file (Transact-SQL)
- sys.server_audits (Transact-SQL)
- sys.server_file_audits (Transact-SQL)
- sys.server_audit_specifications (Transact-SQL)
- sys.server_audit_specification_details (Transact-SQL)
- sys.database_audit_specifications (Transact-SQL)
- sys.database_audit_specification_details (Transact-SQL)
- sys.dm_server_audit_status (Transact-SQL)
- sys.dm_audit_actions (Transact-SQL)
- sys.dm_audit_class_type_map (Transact-SQL)
- Kiszolgáló audit- és kiszolgálónaplózási specifikációjának létrehozása