SQL-auditlogboeken in Fabric Data Warehouse

Van toepassing op:✅ SQL Analytics-eindpunt en -magazijn in Microsoft Fabric

Auditing in Fabric Data Warehouse biedt verbeterde beveiligings- en nalevingsfuncties door databasegebeurtenissen bij te houden en vast te leggen.

Door gebruik te maken van SQL-auditlogs kun je databaseactiviteiten monitoren, potentiële beveiligingsdreigingen detecteren en voldoen aan compliance-eisen door een auditspoor van belangrijke acties bij te houden, zoals:

  • Wijzigingen in verificatiepogingen en toegangsbeheer
  • Bewerkingen voor gegevenstoegang en -wijziging
  • Schemawijzigingen en beheeractiviteiten
  • Machtigingswijzigingen en beveiligingsconfiguraties

Belangrijk

SQL-auditlogs zijn standaard UIT. Gebruikers met Audit queries machtigingen moeten het inschakelen om de logbestanden vast te leggen.

Raadpleeg de stappen in SQL-auditlogboeken configureren in Fabric Data Warehouse om aan de slag te gaan.

Opslag

SQL-auditlogboeken worden in rust versleuteld en opgeslagen in OneLake.

Voor Fabric Data Warehouse worden auditlogboeken geschreven naar .XEL bestanden die zijn opgeslagen in de map Audit van het magazijn in OneLake.

Gebruikers met de volgende rollen hebben toegang tot de auditmap:

  • Werkruimtebeheerders
  • Leden van de Werkruimte
  • Bijdragers voor werkruimte
  • Werkruimteviewers met de machtiging Volledige Leestoegang

Deze gebruikers kunnen:

  • Bladeren in de map Audit
  • De .XEL controlebestanden weergeven die zijn gegenereerd door SQL-controle
  • De bestanden voor offlineanalyse kopiëren
  • Open de bestanden met hulpprogramma's zoals SQL Server Management Studio (SSMS)

U kunt ook query's uitvoeren op auditlogboeken met T-SQL via sys.fn_get_audit_file_v2.

Voor instructies, zie Hoe u SQL-auditlogboeken configureert in Fabric Data Warehouse.

Hint

Het configureren van auditlogboeken in Microsoft Fabric Data Warehouse kan de opslagkosten verhogen, afhankelijk van de actiegroepen en gebeurtenissen die zijn vastgelegd. Schakel alleen de vereiste gebeurtenissen in om onnodige opslagkosten te voorkomen.

Performance

De SQL-auditlogsfunctie is geoptimaliseerd voor de beschikbaarheid en prestaties van de database die wordt gecontroleerd. Tijdens perioden van zeer hoge activiteit of een hoge netwerkbelasting kan de controlefunctie transacties toestaan zonder alle gebeurtenissen die zijn gemarkeerd voor controle op te nemen.

Machtigingen

Gebruikers moeten de machtiging Auditquery's (Audit) hebben om auditlogboeken te configureren en op te vragen.

  • Standaard hebben werkruimtebeheerders toestemming voor Controlequery's op alle items in de werkruimte.
  • Beheerders kunnen via het deelvenster Audit-queries rechten op items aan andere gebruikers geven.

Workspace-beheerders kunnen Auditqueries-rechten aan een item geven door gebruik te maken van de gedeelde menu-optie in het Fabric-portaal. Als u wilt controleren of een gebruiker auditvragen machtigingen heeft, controleert u de Machtigingen beheren instellingen.

  1. Selecteer in uw magazijnitem de knop Delen .

    Of, in de Fabric-portal, in uw werkruimte. Selecteer het ... contextmenu voor uw magazijnitem en selecteer Machtigingen beheren.

  2. In het venster 'Toegeven mensen toegang ' geef je rechten aan een gebruiker.

    Schermopname die laat zien waar u de machtiging Controlequery's (Audit) kunt selecteren in het 'Delen van item' menu.

Raadpleeg auditlogs met behulp van T-SQL-permissies

Geef gebruikers de VIEW DATABASE SECURITY AUDIT toestemming zodat ze auditlogboeken kunnen opvragen met T-SQL-rechten, zelfs als ze geen administratieve functies voor de werkruimte hebben.

Wanneer je de volgende toestemming verleent, kan een gebruiker auditlogs opvragen met behulp van de functie sys.fn_get_audit_file_v2 :

GRANT VIEW DATABASE SECURITY AUDIT TO [user];

Hint

De VIEW DATABASE SECURITY AUDIT toestemming geeft alleen de mogelijkheid om auditlogs op te vragen. Het verleent geen toegang tot de bestanden of toestemming om de auditconfiguratie te wijzigen.

Controleactiegroepen en -acties op databaseniveau

Om de configuratie van auditlogboeken toegankelijker te maken, gebruikt de Fabric-portal beschrijvende namen om niet-SQL-beheerders en andere gebruikers gemakkelijk inzicht te geven in vastgelegde Fabric Data Warehouse-gebeurtenissen.

Fabric wijst deze gebruiksvriendelijke namen toe aan de onderliggende SQL Audit actiegroepen. Gebruik de volgende tabel als referentie.

Vriendelijke naam Naam van actiegroep Beschrijving
Toegang verkregen tot object DATABASE_OBJECT_ACCESS_GROUP Registreert toegang tot databaseobjecten, zoals berichttypen, assemblages of contracten.
Object is veranderd DATABASE_OBJECT_CHANGE_GROUP Registreert CREATE, ALTER, of DROP operaties op databaseobjecten.
Objecteigenaar gewijzigd DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP Registreert eigendomswijzigingen van databaseobjecten.
Objecttoestemming is gewijzigd DATABASE_OBJECT_PERMISSION_CHANGE_GROUP Registreert GRANT, REVOKE, of DENY acties voor databaseobjecten.
Gebruiker is gewijzigd DATABASE_PRINCIPAL_CHANGE_GROUP Logboeken maken, wijzigen of verwijderen van database-principals (gebruikers, rollen).
Gebruiker is geïmiteerd DATABASE_PRINCIPAL_IMPERSONATION_GROUP Registreert imitatiebewerkingen (zoals EXECUTE AS).
Rolleden is gewijzigd DATABASE_ROLE_MEMBER_CHANGE_GROUP Registreert het toevoegen of verwijderen van aanmeldingen uit een databaserol.
Gebruiker kan zich niet aanmelden FAILED_DATABASE_AUTHENTICATION_GROUP Registreert mislukte verificatiepogingen in de database.
Schemamachtiging is gebruikt SCHEMA_OBJECT_ACCESS_GROUP Registreert toegang tot schemaobjecten.
Schema is gewijzigd SCHEMA_OBJECT_CHANGE_GROUP Registreert CREATE, ALTER of DROP bewerkingen op schema's.
Machtiging voor schemaobject is gecontroleerd SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP Registreert wijzigingen in het eigendom van schemaobjecten.
Machtiging voor schemaobject is gewijzigd SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP Logt GRANT, REVOKE, of DENY acties op schemaobjecten.
Batch is voltooid BATCH_COMPLETED_GROUP Deze gebeurtenis wordt gegenereerd wanneer een batchtekst, opgeslagen procedure of transactiebeheerbewerking wordt uitgevoerd.
De batch is gestart BATCH_STARTED_GROUP Deze gebeurtenis wordt gegenereerd wanneer een batchtekst, opgeslagen procedure of transactiebeheerbewerking wordt uitgevoerd.
De audit is gewijzigd AUDIT_CHANGE_GROUP Deze gebeurtenis wordt gegenereerd wanneer een controle wordt gemaakt, gewijzigd of verwijderd.
Gebruiker afgemeld DATABASE_LOGOUT_GROUP Deze gebeurtenis wordt gegenereerd wanneer een databasegebruiker zich afmeldt bij een database.
Gebruiker ingelogd SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP Geeft aan dat een principal is aangemeld bij een database.

Controleacties op databaseniveau

Naast actiegroepen kunt u afzonderlijke controleacties configureren om specifieke databasegebeurtenissen te registreren:

Controleactie Beschrijving
SELECT Registreert SELECT verklaringen op een opgegeven object.
INSERT Registreert INSERT bewerkingen op een opgegeven object.
UPDATE Registreert UPDATE bewerkingen op een opgegeven object.
DELETE Registreert DELETE bewerkingen op een opgegeven object.
EXECUTE Registreert de uitvoering van opgeslagen procedures of functies.
RECEIVE Registreert RECEIVE bewerkingen op Service Broker-wachtrijen.
REFERENCES Registreert machtigingscontroles met betrekking tot vreemde-sleutelbeperkingen.

Verminder auditruis met predicaatfiltering

Om te filteren welke gebeurtenissen worden vastgelegd, gebruik je het optionele predicaatexpressiefilter .

Gebruik predicaatfiltering om ruis te verminderen van verwachte, repetitieve activiteiten, zoals automatiseringsidentiteiten, servicehoofden of geplande taken, zonder de actiegroepen die uw organisatie nodig heeft voor compliance of onderzoek uit te schakelen.

  • Alleen wanneer een gebeurtenis overeenkomt met het geconfigureerde predicaat, wordt het SQL-auditlog-event voor die actie gegenereerd.
    • Filteren gebeurt voordat het evenement wordt geschreven, dus uitgesloten gebeurtenissen zijn later niet beschikbaar voor retrospectief onderzoek. Behandel predicaatuitsluitingen als een bewuste auditbeleidsbeslissing en bekijk het geconfigureerde predicat periodiek naarmate eigendom, permissies en risicoprofielen veranderen.
  • Predicaatfiltering evalueert alleen gebeurtenissen die al zijn geconfigureerd om vastgelegd te worden door een ingeschakelde auditactiegroep of -actie.
    • Als de onderliggende actiegroep niet is ingeschakeld, wordt er geen gebeurtenis gegenereerd voor het predicaat om te evalueren, en heeft het filter geen effect. Om bijvoorbeeld statements te filteren SELECT met een predikaat op het statement veld, moet je eerst de actiegroep Batch Was Completed (BATCH_COMPLETED_GROUP) inschakelen.

Je kunt een predicaatexpressie configureren door gebruik te maken van het Fabric-portaal of de REST API. Voor stappen, zie Configureer een predicaatexpressie.

Syntaxis van predikaatexpressie

Predicaatexpressies gebruiken dezelfde syntaxis als de <predicate_expression> clausule in CREATE SERVER AUDIT (Transact-SQL), zonder het WHERE trefwoord:

<predicate_expression> ::=
    { [ NOT ] <predicate_factor>
    [ { AND | OR } [ NOT ] { <predicate_factor> } ] [ ,... n ] }

<predicate_factor> ::=
    event_field_name { = | <> | != | > | >= | < | <= | LIKE }
    { number | 'string' }
  • event_field_name komt overeen met een kolom die wordt teruggegeven door sys.fn_get_audit_file (Transact-SQL). Je kunt alle gedocumenteerde kolommen gebruiken, behalve file_name, audit_file_offset, en event_time.
  • action_id en class_type zijn strings, maar je kunt ze alleen vergelijken met numerieke waarden in een predicaat.
  • Stringvergelijkingen voeren geen impliciete typeconversie uit.
  • De maximale expressielengte is 3.000 tekens.
  • Een lege string betekent dat er geen predicaat wordt toegepast.

Om bijvoorbeeld activiteit uit te sluiten die wordt gegenereerd door een bekende serviceprincipal of automatiseringsidentiteit, filter je op server_principal_name. Om herhalende SELECT uitspraken uit te sluiten, filter je op het statement veld: NOT statement LIKE 'SELECT %'.

Beperkingen

  • Uw standaardwerkruimte biedt geen ondersteuning voor SQL-auditlogboeken.
  • SQL-auditlogboeken worden niet ondersteund voor momentopnamen van het magazijn.

Belangrijk

Auditlogboeken worden opgeslagen in het magazijnitem in OneLake. Als u het magazijn verwijdert, verwijdert u ook de bijbehorende auditlogboekbestanden en hebt u er geen toegang meer toe.
Als u auditlogboeken wilt bewaren voor nalevings- of onderzoeksdoeleinden, kopieert u de .XEL bestanden naar een andere opslaglocatie voordat u het magazijn verwijdert.

Beperkingen voor SQL Analytics-eindpunten

De volgende beperkingen gelden voor het controleren van SQL Analytics-eindpunten:

  • DML-bewerkingen worden niet vastgelegd. De audit registreert geen bewerkingen zoals INSERT, UPDATE, DELETE, en MERGE omdat gegevensbewerkingen voor Lakehouse-tabellen plaatsvinden via de Lakehouse-runtime in plaats van via het SQL-analyse-eindpunt.
  • Directe toegang tot de auditmap wordt momenteel niet ondersteund. Gebruikers kunnen de onderliggende .XEL auditbestanden niet uit de Lakehouse-auditmap doorzoeken of downloaden.

Je kunt nog steeds auditgebeurtenissen voor SQL-analytics-endpoints opvragen met de T-SQL-functie sys.fn_get_audit_file_v2.

Volgende stap

SQL-auditlogs configureren in Fabric Data Warehouse