Delen via


Database Auditing Settings - Create Or Update

Hiermee maakt of werkt u het blobcontrolebeleid van een database bij.

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

URI-parameters

Name In Vereist Type Description
blobAuditingPolicyName
path True

string

De naam van het blobcontrolebeleid.

databaseName
path True

string

De naam van de database.

resourceGroupName
path True

string

De naam van de resourcegroep die de resource bevat. U kunt deze waarde verkrijgen via de Azure Resource Manager-API of de portal.

serverName
path True

string

De naam van de server.

subscriptionId
path True

string

De abonnements-id waarmee een Azure-abonnement wordt geïdentificeerd.

api-version
query True

string

De API-versie die moet worden gebruikt voor de aanvraag.

Aanvraagbody

Name Vereist Type Description
properties.state True

BlobAuditingPolicyState

Hiermee geeft u de status van het beleid. Als de status Ingeschakeld is, zijn storageEndpoint of isAzureMonitorTargetEnabled vereist.

properties.auditActionsAndGroups

string[]

Hiermee geeft u de Actions-Groups en acties te controleren.

De aanbevolen set actiegroepen die moet worden gebruikt, is de volgende combinatie: hiermee worden alle query's en opgeslagen procedures gecontroleerd die worden uitgevoerd op de database, evenals geslaagde en mislukte aanmeldingen:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP.

Deze bovenstaande combinatie is ook de set die standaard wordt geconfigureerd bij het inschakelen van controle vanuit de Azure Portal.

De ondersteunde actiegroepen die moeten worden gecontroleerd, zijn (opmerking: kies alleen specifieke groepen die voldoen aan uw controlebehoeften. Het gebruik van onnodige groepen kan leiden tot zeer grote hoeveelheden controlerecords:

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

Dit zijn groepen die betrekking hebben op alle SQL-instructies en opgeslagen procedures die worden uitgevoerd op basis van de database en mogen niet worden gebruikt in combinatie met andere groepen, omdat dit resulteert in dubbele auditlogboeken.

Zie Actiegroepen voor controle op databaseniveau voor meer informatie.

Voor databasecontrolebeleid kunnen ook specifieke acties worden opgegeven (houd er rekening mee dat acties niet kunnen worden opgegeven voor servercontrolebeleid). De ondersteunde acties die moeten worden gecontroleerd zijn: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

De algemene vorm voor het definiëren van een actie die moet worden gecontroleerd, is: {action} ON {object} BY {principal}

Houd er rekening mee dat in de bovenstaande indeling kan verwijzen naar een object zoals een tabel, weergave of opgeslagen procedure, of een hele database of schema. Voor de laatste gevallen worden respectievelijk de formulieren DATABASE::{db_name} en SCHEMA::{schema_name} gebruikt.

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

Zie Auditacties op databaseniveau voor meer informatie

properties.isAzureMonitorTargetEnabled

boolean

Hiermee geeft u op of controlegebeurtenissen worden verzonden naar Azure Monitor. Als u de gebeurtenissen naar Azure Monitor wilt verzenden, geeft u 'state' op als 'Enabled' en 'isAzureMonitorTargetEnabled' als true.

Wanneer u REST API gebruikt om controle te configureren, moeten ook diagnostische instellingen met de categorie SQLSecurityAuditEvents voor diagnostische logboeken voor de database worden gemaakt. Houd er rekening mee dat u voor controle op serverniveau de hoofddatabase moet gebruiken als {databaseName}.

URI-indeling voor diagnostische instellingen: 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

Zie Diagnostische instellingen REST API of Diagnostische instellingen PowerShell voor meer informatie

properties.isStorageSecondaryKeyInUse

boolean

Hiermee geeft u op of de waarde storageAccountAccessKey de secundaire sleutel van de opslag is.

properties.queueDelayMs

integer

Hiermee geeft u de hoeveelheid tijd in milliseconden op die kan verstrijken voordat controleacties worden gedwongen te worden verwerkt. De standaard minimumwaarde is 1000 (1 seconde). Het maximum is 2.147.483.647.

properties.retentionDays

integer

Hiermee geeft u het aantal dagen op dat moet worden bewaard in de auditlogboeken in het opslagaccount.

properties.storageAccountAccessKey

string

Hiermee geeft u de id-sleutel van het controleopslagaccount. Als de status Ingeschakeld is en storageEndpoint is opgegeven, wordt bij het niet opgeven van de storageAccountAccessKey een door het SQL Server-systeem toegewezen beheerde identiteit gebruikt voor toegang tot de opslag. Vereisten voor het gebruik van verificatie van beheerde identiteit:

  1. Wijs SQL Server een door het systeem toegewezen beheerde identiteit toe in Azure Active Directory (AAD).
  2. Ververleent SQL Server identiteit toegang tot het opslagaccount door de RBAC-rol Inzender voor opslagblobgegevens toe te voegen aan de serveridentiteit. Zie Controle naar opslag met behulp van verificatie van beheerde identiteit voor meer informatie
properties.storageAccountSubscriptionId

string

Hiermee geeft u de abonnements-id voor blobopslag op.

properties.storageEndpoint

string

Hiermee geeft u het eindpunt voor blobopslag op (bijvoorbeeld https://MyAccount.blob.core.windows.net). Als de status Ingeschakeld is, is storageEndpoint of isAzureMonitorTargetEnabled vereist.

Antwoorden

Name Type Description
200 OK

DatabaseBlobAuditingPolicy

Het controlebeleid voor database-blobs is ingesteld.

201 Created

DatabaseBlobAuditingPolicy

Het controlebeleid voor de database-blob is gemaakt.

Other Status Codes

Foutreacties: ***

  • 400 BlobAuditingIsNotSupportedOnResourceType - Blob-controle wordt momenteel niet ondersteund voor dit resourcetype.

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest - De beleidsaanvraag voor het maken van database-blobcontrole bestaat niet of heeft geen eigenschapsobject.

  • 400 InvalidBlobAuditActionsAndGroups - Ongeldige controleacties of actiegroepen.

  • 400 DataSecurityInvalidUserSuppliedParameter - Er is een ongeldige parameterwaarde opgegeven door de client.

  • 400 BlobAuditingInvalidStorageAccountName - Het opgegeven opslagaccount is niet geldig of bestaat niet.

  • 400 UpdateNotAllowedOnPausedDatabase - Gebruiker heeft geprobeerd een update uit te voeren op een onderbroken database.

  • 400 BlobAuditingInvalidStorageAccountCredentials: het opgegeven opslagaccount of de toegangssleutel is ongeldig.

  • 400 BlobAuditingIsNotSupportedOnGeoDr - Blob-controle kan alleen worden geconfigureerd voor primaire databases.

  • 400 BlobAuditingNoServerIdentity : de serveridentiteit is niet juist geconfigureerd.

  • 400 InvalidBlobAuditActionsAndGroupsForDW - Niet-ondersteunde controleacties of actiegroepen voor DW.

  • 400 BlobAuditingInsufficientStorageAccountPermissions - Onvoldoende lees- of schrijfmachtigingen voor het opgegeven opslagaccount.

  • 400 BlobAuditingStorageAccountIsDisabled : het opgegeven opslagaccount is uitgeschakeld.

  • 400 InsufficientDiskSpaceForAuditing - Onvoldoende schijfruimte om controlemetagegevens in de database op te slaan

  • 400 InvalidBlobAuditActions - Ongeldige controleactie

  • 404 SourceDatabaseNotFound - De brondatabase bestaat niet.

  • 404 DatabaseDoesNotExist - Gebruiker heeft een databasenaam opgegeven die niet bestaat op dit serverexemplaar.

  • 500 DatabaseIsUnavailable - Laden is mislukt. Probeert u het later nog eens.

Voorbeelden

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

Voorbeeldaanvraag

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=2015-05-01-preview

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

Voorbeeldrespons

{
  "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",
    "isStorageSecondaryKeyInUse": false,
    "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",
    "isStorageSecondaryKeyInUse": false,
    "auditActionsAndGroups": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ]
  }
}

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

Voorbeeldaanvraag

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=2015-05-01-preview

{
  "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
  }
}

Voorbeeldrespons

{
  "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

Voorbeeldaanvraag

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=2015-05-01-preview

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

Voorbeeldrespons

{
  "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
  }
}

Definities

Name Description
BlobAuditingPolicyState

Hiermee geeft u de status van het beleid. Als de status Ingeschakeld is, zijn storageEndpoint of isAzureMonitorTargetEnabled vereist.

DatabaseBlobAuditingPolicy

Een database-blobcontrolebeleid.

BlobAuditingPolicyState

Hiermee geeft u de status van het beleid. Als de status Ingeschakeld is, zijn storageEndpoint of isAzureMonitorTargetEnabled vereist.

Name Type Description
Disabled

string

Enabled

string

DatabaseBlobAuditingPolicy

Een database-blobcontrolebeleid.

Name Type Description
id

string

Resource-id.

kind

string

Resourcetype.

name

string

Resourcenaam.

properties.auditActionsAndGroups

string[]

Hiermee geeft u de Actions-Groups en acties te controleren.

De aanbevolen set actiegroepen die moet worden gebruikt, is de volgende combinatie: hiermee worden alle query's en opgeslagen procedures gecontroleerd die worden uitgevoerd op de database, evenals geslaagde en mislukte aanmeldingen:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP FAILED_DATABASE_AUTHENTICATION_GROUP.

Deze bovenstaande combinatie is ook de set die standaard wordt geconfigureerd bij het inschakelen van controle vanuit de Azure Portal.

De ondersteunde actiegroepen die moeten worden gecontroleerd, zijn (opmerking: kies alleen specifieke groepen die voldoen aan uw controlebehoeften. Het gebruik van onnodige groepen kan leiden tot zeer grote hoeveelheden controlerecords:

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

Dit zijn groepen die betrekking hebben op alle SQL-instructies en opgeslagen procedures die worden uitgevoerd op basis van de database en mogen niet worden gebruikt in combinatie met andere groepen, omdat dit resulteert in dubbele auditlogboeken.

Zie Actiegroepen voor controle op databaseniveau voor meer informatie.

Voor databasecontrolebeleid kunnen ook specifieke acties worden opgegeven (houd er rekening mee dat acties niet kunnen worden opgegeven voor servercontrolebeleid). De ondersteunde acties die moeten worden gecontroleerd zijn: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

De algemene vorm voor het definiëren van een actie die moet worden gecontroleerd, is: {action} ON {object} BY {principal}

Houd er rekening mee dat in de bovenstaande indeling kan verwijzen naar een object zoals een tabel, weergave of opgeslagen procedure, of een hele database of schema. Voor de laatste gevallen worden respectievelijk de formulieren DATABASE::{db_name} en SCHEMA::{schema_name} gebruikt.

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

Zie Auditacties op databaseniveau voor meer informatie

properties.isAzureMonitorTargetEnabled

boolean

Hiermee geeft u op of controlegebeurtenissen worden verzonden naar Azure Monitor. Als u de gebeurtenissen naar Azure Monitor wilt verzenden, geeft u 'state' op als 'Enabled' en 'isAzureMonitorTargetEnabled' als true.

Wanneer u REST API gebruikt om controle te configureren, moeten ook diagnostische instellingen met de categorie SQLSecurityAuditEvents voor diagnostische logboeken voor de database worden gemaakt. Houd er rekening mee dat u voor controle op serverniveau de hoofddatabase moet gebruiken als {databaseName}.

URI-indeling voor diagnostische instellingen: 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

Zie Diagnostische instellingen REST API of Diagnostische instellingen PowerShell voor meer informatie

properties.isStorageSecondaryKeyInUse

boolean

Hiermee geeft u op of de waarde storageAccountAccessKey de secundaire sleutel van de opslag is.

properties.queueDelayMs

integer

Hiermee geeft u de hoeveelheid tijd in milliseconden op die kan verstrijken voordat controleacties worden gedwongen te worden verwerkt. De standaard minimumwaarde is 1000 (1 seconde). Het maximum is 2.147.483.647.

properties.retentionDays

integer

Hiermee geeft u het aantal dagen op dat moet worden bewaard in de auditlogboeken in het opslagaccount.

properties.state

BlobAuditingPolicyState

Hiermee geeft u de status van het beleid. Als de status Ingeschakeld is, zijn storageEndpoint of isAzureMonitorTargetEnabled vereist.

properties.storageAccountAccessKey

string

Hiermee geeft u de id-sleutel van het controleopslagaccount. Als de status Ingeschakeld is en storageEndpoint is opgegeven, wordt bij het niet opgeven van de storageAccountAccessKey een door het SQL Server-systeem toegewezen beheerde identiteit gebruikt voor toegang tot de opslag. Vereisten voor het gebruik van verificatie van beheerde identiteit:

  1. Wijs SQL Server een door het systeem toegewezen beheerde identiteit toe in Azure Active Directory (AAD).
  2. Ververleent SQL Server identiteit toegang tot het opslagaccount door de RBAC-rol Inzender voor opslagblobgegevens toe te voegen aan de serveridentiteit. Zie Controle naar opslag met behulp van verificatie van beheerde identiteit voor meer informatie
properties.storageAccountSubscriptionId

string

Hiermee geeft u de abonnements-id voor blobopslag op.

properties.storageEndpoint

string

Hiermee geeft u het eindpunt voor blobopslag op (bijvoorbeeld https://MyAccount.blob.core.windows.net). Als de status Ingeschakeld is, is storageEndpoint of isAzureMonitorTargetEnabled vereist.

type

string

Resourcetype.