Database Auditing Settings - Create Or Update

Vytvoří nebo aktualizuje zásady auditování objektů blob databáze.

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

Parametry identifikátoru URI

Name In Required Type Description
blobAuditingPolicyName
path True
  • string

Název zásady auditování objektů blob.

databaseName
path True
  • string

Název databáze.

resourceGroupName
path True
  • string

Název skupiny prostředků, která prostředek obsahuje. Tuto hodnotu můžete získat z rozhraní API služby Azure Resource Manager nebo portálu.

serverName
path True
  • string

Název serveru.

subscriptionId
path True
  • string

ID předplatného, které identifikuje předplatné Azure.

api-version
query True
  • string

Verze rozhraní API, která se má použít pro požadavek.

Text požadavku

Name Required Type Description
properties.state True

Určuje stav zásady. Pokud je stav povolený, vyžaduje se storageEndpoint nebo isAzureMonitorTargetEnabled.

properties.auditActionsAndGroups
  • string[]

Určuje Actions-Groups a akce, které se mají auditovat.

Doporučená sada skupin akcí, které se mají použít, je následující kombinace – audituje všechny dotazy a uložené procedury prováděné v databázi a také úspěšné a neúspěšné přihlášení:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Tato výše uvedená kombinace je také sada, která je ve výchozím nastavení nakonfigurovaná při povolování auditování z Azure Portal.

Podporované skupiny akcí, které se mají auditovat, jsou (poznámka: Vyberte pouze konkrétní skupiny, které pokrývají vaše potřeby auditování. Použití nepotřebných skupin může vést k velmi velkému množství záznamů auditu:

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

Jedná se o skupiny, které pokrývají všechny příkazy SQL a uložené procedury prováděné v databázi a neměly by být použity v kombinaci s jinými skupinami, protože výsledkem budou duplicitní protokoly auditu.

Další informace naleznete v tématu Skupiny akcí auditování na úrovni databáze.

U zásad auditování databáze je také možné zadat konkrétní akce (všimněte si, že pro zásady auditování serveru nelze zadat akce). Podporované akce pro audit jsou: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

Obecný formulář pro definování akce, která se má auditovat, je: {action} ON {object} BY {principal}

Všimněte si, že ve výše uvedeném formátu může odkazovat na objekt, jako je tabulka, zobrazení nebo uložená procedura, nebo celá databáze nebo schéma. V těchto případech se používají formuláře DATABASE::{db_name} a SCHEMA::{schema_name}.

Příklad: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Další informace najdete v tématu Akce auditu na úrovni databáze

properties.isAzureMonitorTargetEnabled
  • boolean

Určuje, jestli se události auditu odesílají do služby Azure Monitor. Pokud chcete odesílat události do služby Azure Monitor, zadejte stav jako Povoleno a isAzureMonitorTargetEnabled jako true.

Při konfiguraci auditování pomocí rozhraní REST API by se v databázi měly vytvořit také diagnostické Nastavení s kategorií diagnostických protokolů SQLSecurityAuditEvents. Všimněte si, že pro audit na úrovni serveru byste měli použít hlavní databázi jako {databaseName}.

Formát identifikátoru URI diagnostiky Nastavení: PUThttps://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

Další informace najdete v tématu Diagnostické Nastavení rozhraní REST API nebo Diagnostické Nastavení PowerShellu.

properties.isStorageSecondaryKeyInUse
  • boolean

Určuje, jestli je hodnota storageAccountAccessKey sekundárním klíčem úložiště.

properties.queueDelayMs
  • integer

Určuje dobu v milisekundách, která může uplynout před vynuceným zpracováním akcí auditu. Výchozí minimální hodnota je 1000 (1 sekunda). Maximum je 2 147 483 647.

properties.retentionDays
  • integer

Určuje počet dnů, které se mají uchovávat v protokolech auditu v účtu úložiště.

properties.storageAccountAccessKey
  • string

Určuje identifikátor klíče účtu úložiště auditování. Pokud je stav povolen a parametr storageEndpoint je zadaný, nezadávejte storageAccountAccessKey pro přístup k úložišti spravovanou identitu přiřazenou systémem serveru SQL. Předpoklady pro použití ověřování spravované identity:

  1. Přiřazení SQL Server spravované identity přiřazené systémem v Azure Active Directory (AAD).
  2. Udělte SQL Server identitě přístup k účtu úložiště přidáním role RBAC Storage Blob Data Přispěvatel do identity serveru. Další informace najdete v tématu Auditování úložiště pomocí ověřování spravované identity.
properties.storageAccountSubscriptionId
  • string

Určuje ID předplatného úložiště objektů blob.

properties.storageEndpoint
  • string

Určuje koncový bod úložiště objektů blob (např. https://MyAccount.blob.core.windows.net). Pokud je stav povolen, vyžaduje se storageEndpoint nebo isAzureMonitorTargetEnabled.

Odpovědi

Name Type Description
200 OK

Zásady auditování objektů blob databáze se úspěšně nastavily.

201 Created

Úspěšně se vytvořily zásady auditování objektů blob databáze.

Other Status Codes

Chybové odpovědi: ***

  • 400 BlobAuditingIsNotSupportedOnResourceType – Auditování objektů blob pro tento typ prostředku se v současné době nepodporuje.

  • 400 InvalidDatabaseBlobAuditingPolicyCreateRequest – Požadavek na zásadu auditování objektů blob databáze neexistuje nebo nemá žádný objekt vlastností.

  • 400 InvalidBlobAuditActionsAndGroups – Neplatné akce auditu nebo skupiny akcí.

  • 400 DataSecurityInvalidUserSuppliedParameter – klient poskytl neplatnou hodnotu parametru.

  • 400 BlobAuditingInvalidStorageAccountName – Zadaný účet úložiště není platný nebo neexistuje.

  • 400 UpdateNotAllowedOnPausedDatabase – uživatel se pokusil provést aktualizaci pozastavené databáze.

  • 400 BlobAuditingInvalidStorageAccountCredentials – zadaný účet úložiště nebo přístupový klíč není platný.

  • 400 BlobAuditingIsNotSupportedOnGeoDr – Auditování objektů blob je možné nakonfigurovat pouze v primárních databázích.

  • 400 BlobAuditingNoServerIdentity – Identita serveru není správně nakonfigurovaná.

  • 400 InvalidBlobAuditActionsAndGroupsForDW – nepodporované akce auditu nebo skupiny akcí pro DW.

  • 400 BlobAuditingInsufficientStorageAccountPermissions – Nedostatečná oprávnění ke čtení nebo zápisu pro zadaný účet úložiště.

  • 400 BlobAuditingStorageAccountIsDisabled – Zadaný účet úložiště je zakázaný.

  • 400 InsufficientDiskSpaceForAuditing – Nedostatek místa na disku pro úsporu metadat auditování v databázi

  • 400 InvalidBlobAuditActions – Neplatná akce auditu

  • 404 SourceDatabaseNotFound – Zdrojová databáze neexistuje.

  • 404 DatabaseDoesNotExist – Uživatel zadal název databáze, který v této instanci serveru neexistuje.

  • 500 DatabaseIsUnavailable – Načtení se nezdařilo. Zkuste to později.

Příklady

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

Sample Request

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=2017-03-01-preview

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

Sample Response

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

Sample Request

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=2017-03-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
  }
}

Sample Response

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

Sample Request

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=2017-03-01-preview

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

Sample Response

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

Definice

BlobAuditingPolicyState

Určuje stav zásady. Pokud je stav povolený, vyžaduje se storageEndpoint nebo isAzureMonitorTargetEnabled.

DatabaseBlobAuditingPolicy

Zásady auditování objektů blob databáze

BlobAuditingPolicyState

Určuje stav zásady. Pokud je stav povolený, vyžaduje se storageEndpoint nebo isAzureMonitorTargetEnabled.

Name Type Description
Disabled
  • string
Enabled
  • string

DatabaseBlobAuditingPolicy

Zásady auditování objektů blob databáze

Name Type Description
id
  • string

ID prostředku.

kind
  • string

Druh zdroje.

name
  • string

Název prostředku.

properties.auditActionsAndGroups
  • string[]

Určuje Actions-Groups a akce, které se mají auditovat.

Doporučená sada skupin akcí, které se mají použít, je následující kombinace – audituje všechny dotazy a uložené procedury prováděné v databázi a také úspěšné a neúspěšné přihlášení:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Tato výše uvedená kombinace je také sada, která je ve výchozím nastavení nakonfigurovaná při povolování auditování z Azure Portal.

Podporované skupiny akcí, které se mají auditovat, jsou (poznámka: Vyberte pouze konkrétní skupiny, které pokrývají vaše potřeby auditování. Použití nepotřebných skupin může vést k velmi velkému množství záznamů auditu:

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

Jedná se o skupiny, které pokrývají všechny příkazy SQL a uložené procedury prováděné v databázi a neměly by být použity v kombinaci s jinými skupinami, protože výsledkem budou duplicitní protokoly auditu.

Další informace naleznete v tématu Skupiny akcí auditování na úrovni databáze.

U zásad auditování databáze je také možné zadat konkrétní akce (všimněte si, že pro zásady auditování serveru nelze zadat akce). Podporované akce pro audit jsou: SELECT UPDATE INSERT DELETE EXECUTE RECEIVE REFERENCES

Obecný formulář pro definování akce, která se má auditovat, je: {action} ON {object} BY {principal}

Všimněte si, že ve výše uvedeném formátu může odkazovat na objekt, jako je tabulka, zobrazení nebo uložená procedura, nebo celá databáze nebo schéma. V těchto případech se používají formuláře DATABASE::{db_name} a SCHEMA::{schema_name}.

Příklad: SELECT on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Další informace najdete v tématu Akce auditu na úrovni databáze

properties.isAzureMonitorTargetEnabled
  • boolean

Určuje, jestli se události auditu odesílají do služby Azure Monitor. Pokud chcete odesílat události do služby Azure Monitor, zadejte stav jako Povoleno a isAzureMonitorTargetEnabled jako true.

Při konfiguraci auditování pomocí rozhraní REST API by se v databázi měly vytvořit také diagnostické Nastavení s kategorií diagnostických protokolů SQLSecurityAuditEvents. Všimněte si, že pro audit na úrovni serveru byste měli použít hlavní databázi jako {databaseName}.

Formát identifikátoru URI diagnostiky Nastavení: PUThttps://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

Další informace najdete v tématu Diagnostické Nastavení rozhraní REST API nebo Diagnostické Nastavení PowerShellu.

properties.isStorageSecondaryKeyInUse
  • boolean

Určuje, jestli je hodnota storageAccountAccessKey sekundárním klíčem úložiště.

properties.queueDelayMs
  • integer

Určuje dobu v milisekundách, která může uplynout před vynuceným zpracováním akcí auditu. Výchozí minimální hodnota je 1000 (1 sekunda). Maximum je 2 147 483 647.

properties.retentionDays
  • integer

Určuje počet dnů, které se mají uchovávat v protokolech auditu v účtu úložiště.

properties.state

Určuje stav zásady. Pokud je stav povolený, vyžaduje se storageEndpoint nebo isAzureMonitorTargetEnabled.

properties.storageAccountAccessKey
  • string

Určuje identifikátor klíče účtu úložiště auditování. Pokud je stav povolen a parametr storageEndpoint je zadaný, nezadávejte storageAccountAccessKey pro přístup k úložišti spravovanou identitu přiřazenou systémem serveru SQL. Předpoklady pro použití ověřování spravované identity:

  1. Přiřazení SQL Server spravované identity přiřazené systémem v Azure Active Directory (AAD).
  2. Udělte SQL Server identitě přístup k účtu úložiště přidáním role RBAC Storage Blob Data Přispěvatel do identity serveru. Další informace najdete v tématu Auditování úložiště pomocí ověřování spravované identity.
properties.storageAccountSubscriptionId
  • string

Určuje ID předplatného úložiště objektů blob.

properties.storageEndpoint
  • string

Určuje koncový bod úložiště objektů blob (např. https://MyAccount.blob.core.windows.net). Pokud je stav povolen, vyžaduje se storageEndpoint nebo isAzureMonitorTargetEnabled.

type
  • string

Typ prostředku.