Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Managed Instance
Skapar ett servergranskningsobjekt med SQL Server-granskning. Mer information finns i SQL Server-granskning (databasmotor).
Transact-SQL syntaxkonventioner
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 } ]
}
<predicate_expression> ::=
{
[ NOT ] <predicate_factor>
[ { AND | OR } [ NOT ] { <predicate_factor> } ]
[ , ...n ]
}
<predicate_factor>::=
event_field_name { = | < > | != | > | >= | < | <= | LIKE } { number | 'string' }
Argumentpunkter
TILL { FIL | APPLICATION_LOG | SECURITY_LOG | URL | EXTERNAL_MONITOR }
Avgör platsen för granskningsmålet. Alternativen är en binär fil, Windows-programloggen eller Windows-säkerhetsloggen. SQL Server kan inte skriva till Windows-säkerhetsloggen utan att konfigurera extra inställningar i Windows. Mer information finns i Skriva SQL Server-granskningshändelser till säkerhetsloggen.
Målet URL
stöds inte för SQL Server.
Viktigt!
I Azure SQL Managed Instance fungerar SQL Audit på servernivå. Platser kan bara vara URL
eller EXTERNAL_MONITOR
.
FILEPATH = "os_file_path"
Sökvägen till granskningsloggen. Filnamnet genereras baserat på granskningsnamnet och gransknings-GUID. Om den här sökvägen är ogiltig skapas inte granskningen.
FILEPATH
målet stöds inte för Azure SQL Managed Instance. Du måste använda PATH
i stället.
MAXSIZE = max_size
Anger den maximala storlek som granskningsfilen kan växa till. Det max_size värdet måste vara ett heltal följt av MB, GB, TB eller UNLIMITED
. Den minsta storlek som du kan ange för max_size är 2 MB och maxvärdet är 2 147 483 647 TB. När UNLIMITED
har angetts växer filen tills disken är full. (0
anger UNLIMITED
också .) Om du anger ett värde som är lägre än 2 MB uppstår felet MSG_MAXSIZE_TOO_SMALL
. Standardvärdet är UNLIMITED
.
MAXSIZE
målet stöds inte för Azure SQL Managed Instance.
MAX_ROLLOVER_FILES = { heltal | OBEGRÄNSAT }
Anger det maximala antalet filer som ska behållas i filsystemet utöver den aktuella filen. Värdet MAX_ROLLOVER_FILES
måste vara ett heltal eller UNLIMITED
. Standardvärdet är UNLIMITED
. Den här parametern utvärderas när granskningen startas om (vilket kan inträffa när instansen av databasmotorn startas om eller när granskningen är avstängd och sedan på igen) eller när en ny fil behövs eftersom den MAXSIZE
har nåtts. När MAX_ROLLOVER_FILES
utvärderas tas den äldsta filen bort om antalet filer överskrider MAX_ROLLOVER_FILES
inställningen. När inställningen MAX_ROLLOVER_FILES
är 0 skapas därför en ny fil varje gång inställningen MAX_ROLLOVER_FILES
utvärderas. Endast en fil tas bort automatiskt när MAX_ROLLOVER_FILES
inställningen utvärderas, så när värdet MAX_ROLLOVER_FILES
för minskas krymper inte antalet filer om inte gamla filer tas bort manuellt. Det maximala antalet filer som kan anges är 2 147 483 647.
MAX_ROLLOVER_FILES
stöds inte för Azure SQL Managed Instance.
MAX_FILES = heltal
Anger det maximala antalet granskningsfiler som kan skapas. Överförs inte till den första filen när gränsen har nåtts. När gränsen MAX_FILES
har nåtts misslyckas alla åtgärder som gör att fler granskningshändelser genereras med ett fel.
RESERVE_DISK_SPACE = { ON | AV }
Det här alternativet förallokerar filen på disken till värdet MAXSIZE
. Det gäller endast om MAXSIZE
inte är lika med UNLIMITED
. Standardvärdet är OFF
.
RESERVE_DISK_SPACE
målet stöds inte för Azure SQL Managed Instance.
QUEUE_DELAY = heltal
Avgör den tid i millisekunder som kan förflutit innan granskningsåtgärder tvingas bearbetas. Värdet 0 anger synkron leverans. Det minsta frågefördröjningsvärdet som kan ställas in är 1000
(1 sekund), vilket är standardvärdet. Maxvärdet är 2147483647
(2 147 483,647 sekunder eller 24 dagar, 20 timmar, 31 minuter, 23,647 sekunder). Om du anger ett ogiltigt tal genereras MSG_INVALID_QUEUE_DELAY
felet.
ON_FAILURE = { FORTSÄTT | AVSTÄNGNING | FAIL_OPERATION }
Anger om instansen som skriver till målet ska misslyckas, fortsätta eller stoppa SQL Server om målet inte kan skriva till granskningsloggen. Standardvärdet är CONTINUE
.
FORTSÄTTA
SQL Server-åtgärderna fortsätter. Granskningsposter behålls inte. Granskningen fortsätter att försöka logga händelser och återupptas om feltillståndet har lösts. Om du väljer alternativet Fortsätt kan du tillåta oreviderad aktivitet, vilket kan bryta mot dina säkerhetsprinciper. Använd det här alternativet när det är viktigare att fortsätta driften av databasmotorn än att upprätthålla en fullständig granskning.
NEDSTÄNGNING
Tvingar instansen av SQL Server att stängas av om SQL Server av någon anledning inte kan skriva data till granskningsmålet. Inloggningen som kör -instruktionen CREATE SERVER AUDIT
måste ha behörigheten SHUTDOWN
i SQL Server. Avstängningsbeteendet kvarstår även om behörigheten SHUTDOWN
senare återkallas från den körande inloggningen. Om användaren inte har den här behörigheten misslyckas instruktionen och granskningen skapas inte. Använd alternativet när ett granskningsfel kan äventyra systemets säkerhet eller integritet. Mer information finns i AVSTÄNGNING.
FAIL_OPERATION
Databasåtgärder misslyckas om de orsakar granskade händelser. Åtgärder som inte orsakar granskade händelser kan fortsätta, men inga granskade händelser kan inträffa. Granskningen fortsätter att försöka logga händelser och återupptas om feltillståndet har lösts. Använd det här alternativet när det är viktigare att underhålla en fullständig granskning än fullständig åtkomst till databasmotorn.
AUDIT_GUID = unik identifierare
För att stödja scenarier som databasspegling eller databaser som deltar i en AlwaysOn-tillgänglighetsgrupp behöver en granskning ett specifikt GUID som matchar GUID som finns i den speglade databasen. GUID:t kan inte ändras när granskningen har skapats.
OPERATOR_AUDIT
Gäller för: Endast Azure SQL Managed Instance.
Anger om granskning samlar in Microsofts supporttekniker när de behöver komma åt servern under en supportbegäran.
predicate_expression
Anger det predikatuttryck som används för att avgöra om en händelse ska bearbetas eller inte. Predikatuttryck är begränsade till en längd på 3 000 tecken, vilket begränsar strängargument.
event_field_name
Namnet på det händelsefält som identifierar predikatkällan. Granskningsfält beskrivs i sys.fn_get_audit_file. Alla fält kan filtreras utom file_name
, audit_file_offset
och event_time
.
Anmärkning
Fälten action_id
och class_type
är av typen varchar i sys.fn_get_audit_file
, men de kan bara användas med tal när de är en predikatkälla för filtrering. Kör följande fråga för att hämta listan med värden som ska användas med class_type
:
SELECT spt.[name], spt.[number] FROM [master].[dbo].[spt_values] spt WHERE spt.[type] = N'EOD' ORDER BY spt.[name];
nummer
Alla numeriska typer inklusive decimaler. Begränsningar är bristen på tillgängligt fysiskt minne eller ett tal som är för stort för att representeras som ett 64-bitars heltal.
"sträng"
Antingen en ANSI- eller Unicode-sträng enligt vad som krävs av predikatet jämför. Ingen implicit strängtypkonvertering utförs för jämförelsefunktionerna för predikat. Att skicka fel typ resulterar i ett fel.
Anmärkningar
När en servergranskning skapas är den i inaktiverat tillstånd.
-instruktionen CREATE SERVER AUDIT
finns i en transaktions omfång. Om transaktionen återställs, återställs även instruktionen.
Behörigheter
För att skapa, ändra eller släppa en servergranskning kräver huvudnamnen ALTER ANY SERVER AUDIT
eller behörigheten CONTROL SERVER
.
När du sparar granskningsinformation i en fil kan du begränsa åtkomsten till filplatsen för att förhindra manipulering.
Exempel
A. Skapa en servergranskning med ett filmål
I följande exempel skapas en servergranskning med namnet HIPAA_Audit
med en binär fil som mål och inga alternativ.
CREATE SERVER AUDIT HIPAA_Audit TO FILE (
FILEPATH = '\\SQLPROD_1\Audit\'
);
B. Skapa en servergranskning med ett Mål för Windows-programloggen med alternativ
I följande exempel skapas en servergranskning med namnet HIPAA_Audit
med måluppsättningen för Windows-programloggen. Kön skrivs varje sekund och stänger av SQL Server-motorn vid fel.
CREATE SERVER AUDIT HIPAA_Audit TO APPLICATION_LOG
WITH (QUEUE_DELAY = 1000, ON_FAILURE = SHUTDOWN);
C. Skapa en servergranskning som innehåller en WHERE-sats
I följande exempel skapas en databas, ett schema och två tabeller för exemplet. Tabellen med namnet DataSchema.SensitiveData
innehåller konfidentiella data och åtkomst till tabellen måste registreras i granskningen. Tabellen med namnet DataSchema.GeneralData
innehåller inte konfidentiella data. Databasgranskningsspecifikationen granskar åtkomsten DataSchema
till alla objekt i schemat. Servergranskningen skapas med en WHERE-sats som begränsar servergranskningen SensitiveData
till endast tabellen. Servergranskningen förutsätter att en granskningsmapp finns på 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
-- Create the server audit in the master database
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
-- Create the database audit specification in the TestDB database
USE TestDB;
GO
CREATE DATABASE AUDIT SPECIFICATION [FilterForSensitiveData]
FOR SERVER AUDIT [AuditDataAccess]
ADD (SELECT ON SCHEMA::[DataSchema] BY [public])
WITH(STATE = ON);
GO
-- Trigger the audit event by selecting from tables
SELECT ID,
DataField
FROM DataSchema.GeneralData;
SELECT ID,
DataField
FROM DataSchema.SensitiveData;
GO
-- Check the audit for the filtered content
SELECT *
FROM fn_get_audit_file('C:\SQLAudit\AuditDataAccess_*.sqlaudit', DEFAULT, DEFAULT);
GO
Transact-SQL referens
- ÄNDRA SERVERGRANSKNING (Transact-SQL)
- TA BORT SERVERGRANSKNING (Transact-SQL)
- SKAPA SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- TA BORT SERVERGRANSKNINGSSPECIFIKATION (Transact-SQL)
- SKAPA DATABASGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA SPECIFIKATION FÖR DATABASGRANSKNING (Transact-SQL)
- TA BORT DATABASGRANSKNINGSSPECIFIKATION (Transact-SQL)
- ÄNDRA AUKTORISATION (Transact-SQL)
Relaterat innehåll
- 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)
- Skapa en specifikation för servergranskning och servergranskning