Dela via


Extended Database Blob Auditing Policies - Create Or Update

Skapar eller uppdaterar en utökad databas blobgranskningsprincip.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/extendedAuditingSettings/default?api-version=2021-11-01

URI-parametrar

Name I Obligatorisk Typ Description
blobAuditingPolicyName
path True

blobAuditingPolicyName

Namnet på blobgranskningsprincipen.

databaseName
path True

string

Namnet på databasen.

resourceGroupName
path True

string

Namnet på resursgruppen som innehåller resursen. Du kan hämta det här värdet från Azure Resource Manager-API:et eller portalen.

serverName
path True

string

Namnet på servern.

subscriptionId
path True

string

Det prenumerations-ID som identifierar en Azure-prenumeration.

api-version
query True

string

DEN API-version som ska användas för begäran.

Begärandetext

Name Obligatorisk Typ Description
properties.state True

BlobAuditingPolicyState

Anger granskningstillståndet. Om tillståndet är Aktiverat krävs storageEndpoint ellerazureMonitorTargetEnabled.

properties.auditActionsAndGroups

string[]

Anger Actions-Groups och åtgärder som ska granskas.

Den rekommenderade uppsättningen åtgärdsgrupper som ska användas är följande kombination – detta granskar alla frågor och lagrade procedurer som körs mot databasen, samt lyckade och misslyckade inloggningar:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Den här kombinationen ovan är också den uppsättning som konfigureras som standard när granskning från Azure Portal aktiveras.

De åtgärdsgrupper som stöds för granskning är (obs! Välj endast specifika grupper som täcker dina granskningsbehov. Användning av onödiga grupper kan leda till mycket stora mängder granskningsposter:

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

Det här är grupper som täcker alla sql-instruktioner och lagrade procedurer som körs mot databasen och som inte ska användas i kombination med andra grupper eftersom detta resulterar i dubbletter av granskningsloggar.

Mer information finns i Granskningsåtgärdsgrupper på databasnivå.

För databasgranskningsprincip kan specifika åtgärder också anges (observera att Åtgärder inte kan anges för servergranskningsprincipen). De åtgärder som stöds för granskning är: VÄLJ UPPDATERA INFOGA TA BORT KÖR TA EMOT REFERENSER

Det allmänna formuläret för att definiera en åtgärd som ska granskas är: {action} PÅ {object} BY {principal}

Observera att i formatet ovan kan referera till ett objekt som en tabell, vy eller lagrad procedur, eller en hel databas eller ett helt schema. I de senare fallen används formulären DATABASE::{db_name} och SCHEMA::{schema_name}.

Exempel: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Mer information finns i Granskningsåtgärder på databasnivå

properties.isAzureMonitorTargetEnabled

boolean

Anger om granskningshändelser skickas till Azure Monitor. För att skicka händelserna till Azure Monitor anger du "State" som "Enabled" och "IsAzureMonitorTargetEnabled" som true.

När du använder REST API för att konfigurera granskning bör diagnostikinställningar med diagnostikloggkategorin "SQLSecurityAuditEvents" i databasen också skapas. Observera att för granskning på servernivå bör du använda huvuddatabasen som {databaseName}.

URI-format för diagnostikinställningar: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Mer information finns i REST API för diagnostikinställningar eller diagnostikinställningar PowerShell

properties.isManagedIdentityInUse

boolean

Anger om hanterad identitet används för åtkomst till bloblagring

properties.isStorageSecondaryKeyInUse

boolean

Anger om storageAccountAccessKey-värdet är lagringens sekundära nyckel.

properties.predicateExpression

string

Anger villkoret för where-satsen när du skapar en granskning.

properties.queueDelayMs

integer

Anger hur lång tid i millisekunder som kan förflutit innan granskningsåtgärder tvingas bearbetas. Standardvärdet är 1 000 (1 sekund). Maxvärdet är 2 147 483 647.

properties.retentionDays

integer

Anger hur många dagar som ska lagras i granskningsloggarna i lagringskontot.

properties.storageAccountAccessKey

string

Anger identifierarnyckeln för granskningslagringskontot. Om tillståndet är Aktiverat och storageEndpoint har angetts används SQL Server systemtilldelad hanterad identitet för att komma åt lagringen genom att inte ange lagringskontotAccessKey. Förutsättningar för att använda hanterad identitetsautentisering:

  1. Tilldela SQL Server en systemtilldelad hanterad identitet i Azure Active Directory (AAD).
  2. Bevilja SQL Server identitetsåtkomst till lagringskontot genom att lägga till RBAC-rollen "Storage Blob Data Contributor" i serveridentiteten. Mer information finns i Granska till lagring med hjälp av hanterad identitetsautentisering
properties.storageAccountSubscriptionId

string

Anger bloblagringsprenumerations-ID: t.

properties.storageEndpoint

string

Anger bloblagringsslutpunkten (t.ex. https://MyAccount.blob.core.windows.net). Om tillståndet är Aktiverat krävs storageEndpoint ellerazureMonitorTargetEnabled.

Svar

Name Typ Description
200 OK

ExtendedDatabaseBlobAuditingPolicy

Ställ in granskningsprincipen för utökad databasblob.

201 Created

ExtendedDatabaseBlobAuditingPolicy

Den utökade granskningsprincipen för databasblobar har skapats.

Other Status Codes

Felsvar: ***

  • 400 BlobAuditingIsNotSupportedOnResourceType – Blob Auditing stöds för närvarande inte för den här resurstypen.

  • 400 BlobAuditingPredicateExpressionSyntaxError – Ogiltigt värde för parametern "predicateExpression".

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest – begäran om att skapa databasblobgranskningsprincip finns inte eller har inget egenskapsobjekt.

  • 400 InvalidBlobAuditActionsAndGroups – Ogiltiga granskningsåtgärder eller åtgärdsgrupper.

  • 400 DataSecurityInvalidUserSuppliedParameter – Ett ogiltigt parametervärde angavs av klienten.

  • 400 BlobAuditingPredicateExpressionEmpty – Ogiltig parameter "predicateExpression", värdet kan inte vara tomt.

  • 400 UpdateNotAllowedOnPausedDatabase – Användaren försökte utföra en uppdatering på en pausad databas.

  • 400 BlobAuditingInsufficientStorageAccountPermissions – Otillräcklig läs- eller skrivbehörighet för det angivna lagringskontot.

  • 400 BlobAuditingStorageAccountIsDisabled – det angivna lagringskontot är inaktiverat.

  • 400 BlobAuditingNoServerIdentity – serveridentiteten är inte korrekt konfigurerad.

  • 400 BlobAuditingStorageOutboundFirewallNotAllowed – Lagringskontot finns inte med i listan över tillåtna FQDN och därför blockerar de utgående brandväggsreglerna begäran.

  • 400 InvalidBlobAuditActionsAndGroupsForDW – Granskningsåtgärder eller åtgärdsgrupper som inte stöds för DW.

  • 400 BlobAuditingAdalTokenError – Åtgärden kunde inte hämta åtkomsttoken för lagringskontot eftersom ett Azure Active Directory-fel påträffades.

  • 400 BlobAuditingInvalidStorageAccountName – det angivna lagringskontot är inte giltigt eller finns inte.

  • 400 BlobAuditingInvalidStorageAccountCredentials – det angivna lagringskontot eller åtkomstnyckeln är inte giltig.

  • 400 BlobAuditingIsNotSupportedOnGeoDr – Blobgranskning kan endast konfigureras på primära databaser.

  • 400 InsufficientDiskSpaceForAuditing – Otillräckligt diskutrymme för att spara granskningsmetadata i databasen

  • 400 InvalidBlobAuditActions – Ogiltig granskningsåtgärd

  • 404 SourceDatabaseNotFound – källdatabasen finns inte.

  • 404 DatabaseDoesNotExist – Användaren har angett ett databasnamn som inte finns på den här serverinstansen.

  • 500 DatabaseIsUnavailable – Inläsningen misslyckades. Försök igen senare.

Exempel

Create or update an extended database's azure monitor auditing policy with minimal parameters
Create or update an extended database's blob auditing policy with all parameters
Create or update an extended database's blob auditing policy with minimal parameters

Create or update an extended database's azure monitor auditing policy with minimal parameters

Exempelbegäran

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true
  }
}

Exempelsvar

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true,
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}
{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "isAzureMonitorTargetEnabled": true,
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}

Create or update an extended database's blob auditing policy with all parameters

Exempelbegäran

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 6,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "predicateExpression": "statement = 'select 1'",
    "isAzureMonitorTargetEnabled": true
  }
}

Exempelsvar

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "predicateExpression": "statement = 'select 1'",
    "isAzureMonitorTargetEnabled": true
  }
}
{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-1234-0000-5678-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "queueDelayMs": 4000,
    "auditActionsAndGroups": [
      "DATABASE_LOGOUT_GROUP",
      "DATABASE_ROLE_MEMBER_CHANGE_GROUP",
      "UPDATE on database::TestDatabaseName by public"
    ],
    "predicateExpression": "statement = 'select 1'",
    "isAzureMonitorTargetEnabled": true
  }
}

Create or update an extended database's blob auditing policy with minimal parameters

Exempelbegäran

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb/extendedAuditingSettings/default?api-version=2021-11-01

{
  "properties": {
    "state": "Enabled",
    "storageAccountAccessKey": "sdlfkjabc+sdlfkjsdlkfsjdfLDKFTERLKFDFKLjsdfksjdflsdkfD2342309432849328476458/3RSD==",
    "storageEndpoint": "https://mystorage.blob.core.windows.net"
  }
}

Exempelsvar

{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": false
  }
}
{
  "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/databases/testdb",
  "name": "default",
  "type": "Microsoft.Sql/servers/databases/extendedAuditingSettings",
  "properties": {
    "state": "Enabled",
    "storageEndpoint": "https://mystorage.blob.core.windows.net",
    "retentionDays": 0,
    "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000",
    "isStorageSecondaryKeyInUse": false,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": false
  }
}

Definitioner

Name Description
blobAuditingPolicyName

Namnet på blobgranskningsprincipen.

BlobAuditingPolicyState

Anger granskningstillståndet. Om tillståndet är Aktiverat krävs storageEndpoint ellerazureMonitorTargetEnabled.

ExtendedDatabaseBlobAuditingPolicy

En utökad databasblobgranskningsprincip.

blobAuditingPolicyName

Namnet på blobgranskningsprincipen.

Name Typ Description
default

string

BlobAuditingPolicyState

Anger granskningstillståndet. Om tillståndet är Aktiverat krävs storageEndpoint ellerazureMonitorTargetEnabled.

Name Typ Description
Disabled

string

Enabled

string

ExtendedDatabaseBlobAuditingPolicy

En utökad databasblobgranskningsprincip.

Name Typ Description
id

string

Resurs-ID.

name

string

Resursnamn.

properties.auditActionsAndGroups

string[]

Anger Actions-Groups och åtgärder som ska granskas.

Den rekommenderade uppsättningen åtgärdsgrupper som ska användas är följande kombination – detta granskar alla frågor och lagrade procedurer som körs mot databasen, samt lyckade och misslyckade inloggningar:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Den här kombinationen ovan är också den uppsättning som konfigureras som standard när granskning från Azure Portal aktiveras.

De åtgärdsgrupper som stöds för granskning är (obs! Välj endast specifika grupper som täcker dina granskningsbehov. Användning av onödiga grupper kan leda till mycket stora mängder granskningsposter:

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP BACKUP_RESTORE_GROUP DATABASE_LOGOUT_GROUP DATABASE_OBJECT_CHANGE_GROUP DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP DATABASE_OBJECT_PERMISSION_CHANGE_GROUP DATABASE_OPERATION_GROUP DATABASE_PERMISSION_CHANGE_GROUP DATABASE_PRINCIPAL_CHANGE_GROUP DATABASE_PRINCIPAL_IMPERSONATION_GROUP DATABASE_ROLE_MEMBER_CHANGE_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP SCHEMA_OBJECT_ACCESS_GROUP SCHEMA_OBJECT_CHANGE_GROUP SCHEMA_OBJECT_ OWNERSHIP_CHANGE_GROUP SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP USER_CHANGE_PASSWORD_GROUP BATCH_STARTED_GROUP BATCH_COMPLETED_GROUP DBCC_GROUP DATABASE_OWNERSHIP_CHANGE_GROUP DATABASE_CHANGE_GROUP LEDGER_OPERATION_GROUP

Det här är grupper som täcker alla sql-instruktioner och lagrade procedurer som körs mot databasen och som inte ska användas i kombination med andra grupper eftersom detta resulterar i dubbletter av granskningsloggar.

Mer information finns i Granskningsåtgärdsgrupper på databasnivå.

För databasgranskningsprincip kan specifika åtgärder också anges (observera att Åtgärder inte kan anges för servergranskningsprincipen). De åtgärder som stöds för granskning är: VÄLJ UPPDATERA INFOGA TA BORT KÖR TA EMOT REFERENSER

Det allmänna formuläret för att definiera en åtgärd som ska granskas är: {action} PÅ {object} BY {principal}

Observera att i formatet ovan kan referera till ett objekt som en tabell, vy eller lagrad procedur, eller en hel databas eller ett helt schema. I de senare fallen används formulären DATABASE::{db_name} och SCHEMA::{schema_name}.

Exempel: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Mer information finns i Granskningsåtgärder på databasnivå

properties.isAzureMonitorTargetEnabled

boolean

Anger om granskningshändelser skickas till Azure Monitor. För att skicka händelserna till Azure Monitor anger du "State" som "Enabled" och "IsAzureMonitorTargetEnabled" som true.

När du använder REST API för att konfigurera granskning bör diagnostikinställningar med diagnostikloggkategorin "SQLSecurityAuditEvents" i databasen också skapas. Observera att för granskning på servernivå bör du använda huvuddatabasen som {databaseName}.

URI-format för diagnostikinställningar: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Mer information finns i REST API för diagnostikinställningar eller diagnostikinställningar PowerShell

properties.isManagedIdentityInUse

boolean

Anger om hanterad identitet används för åtkomst till bloblagring

properties.isStorageSecondaryKeyInUse

boolean

Anger om storageAccountAccessKey-värdet är lagringens sekundära nyckel.

properties.predicateExpression

string

Anger villkoret för where-satsen när du skapar en granskning.

properties.queueDelayMs

integer

Anger hur lång tid i millisekunder som kan förflutit innan granskningsåtgärder tvingas bearbetas. Standardvärdet är 1 000 (1 sekund). Maxvärdet är 2 147 483 647.

properties.retentionDays

integer

Anger hur många dagar som ska lagras i granskningsloggarna i lagringskontot.

properties.state

BlobAuditingPolicyState

Anger granskningstillståndet. Om tillståndet är Aktiverat krävs storageEndpoint ellerazureMonitorTargetEnabled.

properties.storageAccountAccessKey

string

Anger identifierarnyckeln för granskningslagringskontot. Om tillståndet är Aktiverat och storageEndpoint har angetts används SQL Server systemtilldelad hanterad identitet för att komma åt lagringen genom att inte ange lagringskontotAccessKey. Förutsättningar för att använda hanterad identitetsautentisering:

  1. Tilldela SQL Server en systemtilldelad hanterad identitet i Azure Active Directory (AAD).
  2. Bevilja SQL Server identitetsåtkomst till lagringskontot genom att lägga till RBAC-rollen "Storage Blob Data Contributor" i serveridentiteten. Mer information finns i Granska till lagring med hjälp av hanterad identitetsautentisering
properties.storageAccountSubscriptionId

string

Anger bloblagringsprenumerations-ID: t.

properties.storageEndpoint

string

Anger bloblagringsslutpunkten (t.ex. https://MyAccount.blob.core.windows.net). Om tillståndet är Aktiverat krävs storageEndpoint ellerazureMonitorTargetEnabled.

type

string

Resurstyp.