Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Hiermee maakt u een servercontroleobject met behulp van SQL Server Audit. Zie SQL Server Audit (Database Engine) voor meer informatie.
Transact-SQL syntaxis-conventies
Syntaxis
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' }
Argumenten
NAAR { BESTAND | APPLICATION_LOG | SECURITY_LOG | URL | EXTERNAL_MONITOR }
Bepaalt de locatie van het controledoel. De opties zijn een binair bestand, het Windows-toepassingslogboek of het Windows-beveiligingslogboek. SQL Server kan niet schrijven naar het Windows-beveiligingslogboek zonder extra instellingen in Windows te configureren. Zie Sql Server-auditgebeurtenissen schrijven naar het beveiligingslogboek voor meer informatie.
Het URL
doel wordt niet ondersteund voor SQL Server.
Belangrijk
In Azure SQL Managed Instance werkt SQL Audit op serverniveau. Locaties kunnen alleen of URL
EXTERNAL_MONITOR
.
FILEPATH = 'os_file_path'
Het pad van het auditlogboek. De bestandsnaam wordt gegenereerd op basis van de auditnaam en de audit-GUID. Als dit pad ongeldig is, wordt de controle niet gemaakt.
FILEPATH
het doel wordt niet ondersteund voor Azure SQL Managed Instance. U moet in plaats daarvan gebruiken PATH
.
MAXSIZE = max_size
Hiermee geeft u de maximale grootte op waarop het auditbestand kan groeien. De max_size waarde moet een geheel getal zijn gevolgd door MB, GB, TB of UNLIMITED
. De minimale grootte die u kunt opgeven voor max_size is 2 MB en het maximum is 2.147.483.647 TB. Wanneer UNLIMITED
dit is opgegeven, groeit het bestand totdat de schijf vol is. (0
geeft ook aan UNLIMITED
.) Als u een waarde opgeeft die lager is dan 2 MB, wordt de fout gegenereerd MSG_MAXSIZE_TOO_SMALL
. De standaardwaarde is UNLIMITED
.
MAXSIZE
het doel wordt niet ondersteund voor Azure SQL Managed Instance.
MAX_ROLLOVER_FILES = { geheel getal | ONBEPERKT }
Hiermee geeft u het maximum aantal bestanden dat moet worden bewaard in het bestandssysteem naast het huidige bestand. De MAX_ROLLOVER_FILES
waarde moet een geheel getal of UNLIMITED
een geheel getal zijn. De standaardwaarde is UNLIMITED
. Deze parameter wordt geëvalueerd wanneer de controle opnieuw wordt opgestart (wat kan gebeuren wanneer het exemplaar van de database-engine opnieuw wordt opgestart of wanneer de controle is uitgeschakeld en vervolgens weer wordt ingeschakeld) of wanneer een nieuw bestand nodig is omdat het MAXSIZE
is bereikt. Wanneer MAX_ROLLOVER_FILES
wordt geëvalueerd, wordt het oudste bestand verwijderd als het aantal bestanden groter is dan de MAX_ROLLOVER_FILES
instelling. Als de instelling MAX_ROLLOVER_FILES
0 is, wordt er dus telkens wanneer de MAX_ROLLOVER_FILES
instelling wordt geëvalueerd een nieuw bestand gemaakt. Er wordt slechts één bestand automatisch verwijderd wanneer MAX_ROLLOVER_FILES
de instelling wordt geëvalueerd, dus wanneer de waarde MAX_ROLLOVER_FILES
afneemt, wordt het aantal bestanden niet verkleind, tenzij oude bestanden handmatig worden verwijderd. Het maximum aantal bestanden dat kan worden opgegeven, is 2.147.483.647.
MAX_ROLLOVER_FILES
wordt niet ondersteund voor Azure SQL Managed Instance.
MAX_FILES = geheel getal
Hiermee geeft u het maximum aantal controlebestanden op dat kan worden gemaakt. Wordt niet overgeschakeld naar het eerste bestand wanneer de limiet is bereikt. Wanneer de MAX_FILES
limiet is bereikt, mislukt elke actie die ervoor zorgt dat er meer controlegebeurtenissen worden gegenereerd, mislukt met een fout.
RESERVE_DISK_SPACE = { ON | UIT }
Met deze optie wordt het bestand op de schijf vooraf toegewezen aan de MAXSIZE
waarde. Deze is alleen van toepassing als MAXSIZE
deze niet gelijk is aan UNLIMITED
. De standaardwaarde is OFF
.
RESERVE_DISK_SPACE
het doel wordt niet ondersteund voor Azure SQL Managed Instance.
QUEUE_DELAY = geheel getal
Bepaalt de tijd, in milliseconden, die kan verstrijken voordat controleacties worden gedwongen te worden verwerkt. Een waarde van 0 geeft synchrone levering aan. De minimumwaarde voor ingestelde queryvertraging is 1000
(1 seconde). Dit is de standaardwaarde. Het maximum is 2147483647
(2.147.483.647 seconden of 24 dagen, 20 uur, 31 minuten, 23,647 seconden). Als u een ongeldig nummer opgeeft, wordt de MSG_INVALID_QUEUE_DELAY
fout gegenereerd.
ON_FAILURE = { CONTINUE | AFSLUITEN | FAIL_OPERATION }
Hiermee wordt aangegeven of het schrijven van het exemplaar naar het doel moet mislukken, doorgaan of stoppen als het doel niet naar het auditlogboek kan schrijven. De standaardwaarde is CONTINUE
.
VOORTZETTEN
SQL Server-bewerkingen worden voortgezet. Controlerecords worden niet bewaard. De controle blijft proberen gebeurtenissen te registreren en hervat als de foutvoorwaarde is opgelost. Als u de optie Doorgaan selecteert, kunt u niet-gecontroleerde activiteiten toestaan, die uw beveiligingsbeleid kunnen schenden. Gebruik deze optie als u de database-engine blijft gebruiken, is het belangrijker dan het onderhouden van een volledige controle.
UITSCHAKELEN
Dwingt het exemplaar van SQL Server af te sluiten als SQL Server om welke reden dan ook geen gegevens naar het controledoel schrijft. De aanmelding die de CREATE SERVER AUDIT
instructie uitvoert, moet de SHUTDOWN
machtiging hebben binnen SQL Server. Het afsluitgedrag blijft behouden, zelfs als de SHUTDOWN
machtiging later wordt ingetrokken bij het uitvoeren van de aanmelding. Als de gebruiker niet over deze machtiging beschikt, mislukt de instructie en wordt de controle niet gemaakt. Gebruik de optie wanneer een controlefout de beveiliging of integriteit van het systeem kan misbruiken. Zie AFSLUITEN voor meer informatie.
FAIL_OPERATION
Databaseacties mislukken als ze gecontroleerde gebeurtenissen veroorzaken. Acties die geen gecontroleerde gebeurtenissen veroorzaken, kunnen worden voortgezet, maar er kunnen geen gecontroleerde gebeurtenissen optreden. De controle blijft proberen gebeurtenissen te registreren en hervat als de foutvoorwaarde is opgelost. Gebruik deze optie bij het onderhouden van een volledige controle belangrijker dan volledige toegang tot de database-engine.
AUDIT_GUID = unieke identificatiecode
Ter ondersteuning van scenario's zoals databasespiegeling of databases die deelnemen aan een AlwaysOn-beschikbaarheidsgroep, heeft een audit een specifieke GUID nodig die overeenkomt met de GUID in de gespiegelde database. De GUID kan niet worden gewijzigd nadat de controle is gemaakt.
OPERATOR_AUDIT
Van toepassing op: Alleen Azure SQL Managed Instance.
Hiermee wordt aangegeven of tijdens een ondersteuningsaanvraag bewerkingen van Microsoft-ondersteuningstechnicus worden vastgelegd wanneer deze toegang nodig hebben tot uw server.
predicate_expression
Hiermee geeft u de predicaatexpressie op die wordt gebruikt om te bepalen of een gebeurtenis moet worden verwerkt of niet. Predicaatexpressies zijn beperkt tot een lengte van 3000 tekens, waardoor tekenreeksargumenten worden beperkt.
event_field_name
De naam van het gebeurtenisveld dat de predicaatbron identificeert. Auditvelden worden beschreven in sys.fn_get_audit_file. Alle velden kunnen worden gefilterd, behalve file_name
, audit_file_offset
en event_time
.
Opmerking
Hoewel de velden action_id
van het class_type
type varchar zijnsys.fn_get_audit_file
, kunnen ze alleen worden gebruikt met getallen als ze een predicaatbron zijn voor filteren. Voer de volgende query uit om de lijst met waarden op te halen waarmee moet worden gebruikt class_type
:
SELECT spt.[name], spt.[number] FROM [master].[dbo].[spt_values] spt WHERE spt.[type] = N'EOD' ORDER BY spt.[name];
nummer
Elk numeriek type, inclusief decimaal. Beperkingen zijn het ontbreken van beschikbaar fysiek geheugen of een getal dat te groot is om te worden weergegeven als een 64-bits geheel getal.
'tekenreeks'
Een ANSI- of Unicode-tekenreeks zoals vereist voor het predicaat vergelijken. Er wordt geen impliciete conversie van tekenreekstypen uitgevoerd voor de functies voor predicaatvergelijking. Het doorgeven van het verkeerde type resulteert in een fout.
Opmerkingen
Wanneer een servercontrole wordt gemaakt, heeft deze de status Uitgeschakeld.
De CREATE SERVER AUDIT
instructie valt binnen het bereik van een transactie. Als de transactie wordt teruggedraaid, wordt de verklaring ook teruggedraaid.
Machtigingen
Voor het maken, wijzigen of verwijderen van een servercontrole is de ALTER ANY SERVER AUDIT
of de CONTROL SERVER
machtiging vereist voor principals.
Wanneer u controlegegevens opslaat in een bestand om manipulatie te voorkomen, beperkt u de toegang tot de bestandslocatie.
Voorbeelden
Eén. Een servercontrole maken met een bestandsdoel
In het volgende voorbeeld wordt een servercontrole gemaakt die wordt aangeroepen HIPAA_Audit
met een binair bestand als doel en geen opties.
CREATE SERVER AUDIT HIPAA_Audit TO FILE (
FILEPATH = '\\SQLPROD_1\Audit\'
);
B. Een servercontrole maken met een Windows-toepassingslogboekdoel met opties
In het volgende voorbeeld wordt een servercontrole gemaakt die wordt aangeroepen HIPAA_Audit
met de doelset voor het Windows-toepassingslogboek. De wachtrij wordt elke seconde geschreven en de SQL Server-engine wordt afgesloten bij een fout.
CREATE SERVER AUDIT HIPAA_Audit TO APPLICATION_LOG
WITH (QUEUE_DELAY = 1000, ON_FAILURE = SHUTDOWN);
C. Een servercontrole met een WHERE-component maken
In het volgende voorbeeld wordt een database, schema en twee tabellen voor het voorbeeld gemaakt. De benoemde DataSchema.SensitiveData
tabel bevat vertrouwelijke gegevens en toegang tot de tabel moet worden vastgelegd in de audit. De tabel met de naam DataSchema.GeneralData
bevat geen vertrouwelijke gegevens. De databasecontrolespecificatie controleert de toegang tot alle objecten in het DataSchema
schema. De servercontrole wordt gemaakt met een WHERE-component waarmee de servercontrole wordt beperkt tot alleen de SensitiveData
tabel. Bij de servercontrole wordt ervan uitgegaan dat er een auditmap bestaat op 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 verwijzing
- ALTER SERVER AUDIT (Transact-SQL)
- DROP SERVER AUDIT (Transact-SQL)
- SERVERCONTROLESPECIFICATIE (Transact-SQL) maken
- WIJZIGING VAN DE SERVERAUDITSPECIFICATIE (Transact-SQL)
- DROP SERVER AUDIT SPECIFICATIE (Transact-SQL)
- SPECIFICATIE VOOR DATABASECONTROLE MAKEN (Transact-SQL)
- SPECIFICATIE DATABASE-AUDIT WIJZIGEN (Transact-SQL)
- DATABASECONTROLESPECIFICATIE (Transact-SQL)
- ALTER AUTORISATIE (Transact-SQL)
Verwante inhoud
- 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)
- een servercontrole- en servercontrolespecificatie maken