Dela via


Database Blob Auditing Policies - Create Or Update

Skapar eller uppdaterar en databass blobgranskningsprincip.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/databases/{databaseName}/auditingSettings/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

Prenumerations-ID:t 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 eller isAzureMonitorTargetEnabled.

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 aktiveras från Azure Portal.

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 omfattar 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} ON {object} BY {principal}

Observera att i ovanstående format 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} respektive 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 kunna 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 på 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 Diagnostikinställningar REST API 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.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 behållas i granskningsloggarna på 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 storageAccountAccessKey. Krav för att använda autentisering med hanterad identitet:

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

string

Anger prenumerations-ID:t för Blob Storage.

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

DatabaseBlobAuditingPolicy

Konfigurera databasblobgranskningsprincipen.

201 Created

DatabaseBlobAuditingPolicy

Databasblobgranskningsprincipen har skapats.

Other Status Codes

Felsvar: ***

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

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest – Principbegäran om att skapa databasblobgranskning 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 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 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 a database's azure monitor auditing policy with minimal parameters
Create or update a database's blob auditing policy with all parameters
Create or update a database's blob auditing policy with minimal parameters

Create or update a 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/auditingSettings/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/auditingSettings",
  "kind": "V12",
  "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/auditingSettings",
  "kind": "V12",
  "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 a 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/auditingSettings/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"
    ],
    "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/auditingSettings",
  "kind": "V12",
  "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"
    ],
    "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/auditingSettings",
  "kind": "V12",
  "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"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Create or update a 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/auditingSettings/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/auditingSettings",
  "kind": "V12",
  "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/auditingSettings",
  "kind": "V12",
  "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 eller isAzureMonitorTargetEnabled.

DatabaseBlobAuditingPolicy

En databasblobgranskningsprincip.

blobAuditingPolicyName

Namnet på blobgranskningsprincipen.

Name Typ Description
default

string

BlobAuditingPolicyState

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

Name Typ Description
Disabled

string

Enabled

string

DatabaseBlobAuditingPolicy

En databasblobgranskningsprincip.

Name Typ Description
id

string

Resurs-ID.

kind

string

Resurstyp.

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 aktiveras från Azure Portal.

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 omfattar 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} ON {object} BY {principal}

Observera att i ovanstående format 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} respektive 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 kunna 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 på 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 Diagnostikinställningar REST API 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.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 behållas i granskningsloggarna på lagringskontot.

properties.state

BlobAuditingPolicyState

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

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 storageAccountAccessKey. Krav för att använda autentisering med hanterad identitet:

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

string

Anger prenumerations-ID:t för Blob Storage.

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.