Udostępnij za pośrednictwem


Server Blob Auditing Policies - Create Or Update

Tworzy lub aktualizuje zasady inspekcji obiektów blob serwera.

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

Parametry identyfikatora URI

Nazwa W Wymagane Typ Opis
blobAuditingPolicyName
path True

blobAuditingPolicyName

Nazwa zasad inspekcji obiektów blob.

resourceGroupName
path True

string

Nazwa grupy zasobów zawierającej zasób. Tę wartość można uzyskać z interfejsu API Resource Manager platformy Azure lub portalu.

serverName
path True

string

Nazwa serwera.

subscriptionId
path True

string

Identyfikator subskrypcji identyfikujący subskrypcję platformy Azure.

api-version
query True

string

Wersja interfejsu API do użycia dla żądania.

Treść żądania

Nazwa Wymagane Typ Opis
properties.state True

BlobAuditingPolicyState

Określa stan inspekcji. Jeśli stan jest włączony, wymagany jest parametr storageEndpoint lub isAzureMonitorTargetEnabled.

properties.auditActionsAndGroups

string[]

Określa Actions-Groups i Akcje do inspekcji.

Zalecany zestaw grup akcji do użycia to następująca kombinacja — spowoduje to inspekcję wszystkich zapytań i procedur składowanych wykonywanych względem bazy danych, a także pomyślnych i zakończonych niepowodzeniem logowań:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Ta powyżej kombinacja jest również zestawem skonfigurowanym domyślnie podczas włączania inspekcji z Azure Portal.

Obsługiwane grupy akcji do inspekcji to (uwaga: wybierz tylko określone grupy, które obejmują potrzeby inspekcji. Użycie niepotrzebnych grup może prowadzić do bardzo dużych ilości rekordów inspekcji:

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

Są to grupy, które obejmują wszystkie instrukcje SQL i procedury składowane wykonywane względem bazy danych i nie powinny być używane w połączeniu z innymi grupami, ponieważ spowoduje to zduplikowanie dzienników inspekcji.

Aby uzyskać więcej informacji, zobacz Grupy akcji inspekcji na poziomie bazy danych.

W przypadku zasad inspekcji bazy danych można również określić określone akcje (należy pamiętać, że nie można określić akcji dla zasad inspekcji serwera). Obsługiwane akcje inspekcji to: WYBIERZ POLECENIE AKTUALIZUJ, WSTAW USUŃ INSTRUKCJE ODBIORUJ ODWOŁANIA

Ogólny formularz definiowania akcji do inspekcji: {action} ON {object} BY {principal}

Należy pamiętać, że w powyższym formacie obiekt może odwoływać się do obiektu, takiego jak tabela, widok lub procedura składowana albo cała baza danych lub schemat. W tych ostatnich przypadkach używane są odpowiednio formularze DATABASE::{db_name} i SCHEMA::{schema_name}.

Na przykład: select on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Aby uzyskać więcej informacji, zobacz Akcje inspekcji na poziomie bazy danych

properties.isAzureMonitorTargetEnabled

boolean

Określa, czy zdarzenia inspekcji są wysyłane do usługi Azure Monitor. Aby wysyłać zdarzenia do usługi Azure Monitor, określ wartość "State" jako "Enabled" i "IsAzureMonitorTargetEnabled" jako true.

W przypadku konfigurowania inspekcji przy użyciu interfejsu API REST należy również utworzyć kategorię dzienników diagnostycznych "SQLSecurityAuditEvents" w bazie danych. Należy pamiętać, że w przypadku inspekcji na poziomie serwera należy użyć bazy danych "master" jako {databaseName}.

Format identyfikatora URI ustawień diagnostycznych: 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

Aby uzyskać więcej informacji, zobacz Interfejs API REST ustawień diagnostycznych lub Ustawienia diagnostyczne programu PowerShell

properties.isDevopsAuditEnabled

boolean

Określa stan inspekcji devops. Jeśli stan jest włączony, dzienniki devops zostaną wysłane do usługi Azure Monitor. Aby wysyłać zdarzenia do usługi Azure Monitor, określ wartość "State" jako "Enabled", "IsAzureMonitorTargetEnabled" jako true, a wartość "IsDevopsAuditEnabled" jako true

W przypadku konfigurowania inspekcji przy użyciu interfejsu API REST należy również utworzyć kategorię dzienników diagnostycznych z kategorią dzienników diagnostycznych "DevOpsOperationsAudit" w bazie danych master.

Format identyfikatora URI ustawień diagnostycznych: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Aby uzyskać więcej informacji, zobacz Interfejs API REST ustawień diagnostycznych lub Ustawienia diagnostyczne programu PowerShell

properties.isManagedIdentityInUse

boolean

Określa, czy tożsamość zarządzana jest używana do uzyskiwania dostępu do magazynu obiektów blob

properties.isStorageSecondaryKeyInUse

boolean

Określa, czy wartość storageAccountAccessKey jest kluczem pomocniczym magazynu.

properties.queueDelayMs

integer

Określa czas w milisekundach, który może upłynąć, zanim akcje inspekcji zostaną wymuszone do przetworzenia. Wartość minimalna domyślna to 1000 (1 sekunda). Wartość maksymalna to 2 147 483 647.

properties.retentionDays

integer

Określa liczbę dni przechowywania w dziennikach inspekcji na koncie magazynu.

properties.storageAccountAccessKey

string

Określa klucz identyfikatora konta magazynu inspekcji. Jeśli stan jest włączony, a punkt końcowy magazynu jest określony, nie określa wartości storageAccountAccessKey będzie używać przypisanej przez system tożsamości zarządzanej programu SQL Server w celu uzyskania dostępu do magazynu. Wymagania wstępne dotyczące korzystania z uwierzytelniania tożsamości zarządzanej:

  1. Przypisz SQL Server tożsamość zarządzaną przypisaną przez system w usłudze Azure Active Directory (AAD).
  2. Udziel SQL Server tożsamości dostępu do konta magazynu, dodając rolę RBAC "Współautor danych obiektu blob usługi Storage" do tożsamości serwera. Aby uzyskać więcej informacji, zobacz Inspekcja magazynu przy użyciu uwierzytelniania tożsamości zarządzanej
properties.storageAccountSubscriptionId

string

Określa identyfikator subskrypcji magazynu obiektów blob.

properties.storageEndpoint

string

Określa punkt końcowy magazynu obiektów blob (np. https://MyAccount.blob.core.windows.net). Jeśli stan jest włączony, wymagany jest parametr storageEndpoint lub isAzureMonitorTargetEnabled.

Odpowiedzi

Nazwa Typ Opis
200 OK

ServerBlobAuditingPolicy

Pomyślnie zaktualizowano ustawienia inspekcji.

202 Accepted

Aktualizowanie ustawień inspekcji jest w toku.

Other Status Codes

Odpowiedzi na błędy: ***

  • 400 InvalidServerBlobAuditingPolicyCreateRequest — żądanie zasad inspekcji obiektu blob tworzenia serwera nie istnieje lub nie ma obiektu właściwości.

  • 400 InvalidBlobAuditActionsAndGroups — nieprawidłowe akcje inspekcji lub grupy akcji.

  • 400 DataSecurityInvalidUserSuppliedParameter — przez klienta została podana nieprawidłowa wartość parametru.

  • 400 BlobAuditingInvalidStorageAccountCredentials — podane konto magazynu lub klucz dostępu są nieprawidłowe.

  • 400 InvalidBlobAuditActionsAndGroups — nieprawidłowe akcje inspekcji lub grupy akcji.

  • 400 InsufficientDiskSpaceForAuditing — za mało miejsca na dysku, aby zaoszczędzić metadane inspekcji w bazie danych

  • 400 InvalidBlobAuditActions — nieprawidłowa akcja inspekcji

  • 404 SubscriptionDoesNotHaveServer — nie znaleziono żądanego serwera

  • 404 ServerNotInSubscriptionResourceGroup — określony serwer nie istnieje w określonej grupie zasobów i subskrypcji.

  • 404 OperationIdNotFound — operacja o identyfikatorze nie istnieje.

  • 409 ServerBlobAuditingPolicyInProgress — ustawianie inspekcji obiektów blob serwera jest już w toku.

  • 409 OperationCancelled — operacja została anulowana przez użytkownika.

  • 409 OperationInterrupted — nie można ukończyć operacji na zasobie, ponieważ została przerwana przez inną operację na tym samym zasobie.

  • 429 SubscriptionTooManyCreateUpdateRequests — żądania wykraczające poza maksymalne żądania, które mogą być przetwarzane przez dostępne zasoby.

  • 429 SubscriptionTooManyRequests — żądania wykraczające poza maksymalne żądania, które mogą być przetwarzane przez dostępne zasoby.

  • 500 OperationTimedOut — upłynął limit czasu operacji i został automatycznie wycofany. Ponów próbę wykonania operacji.

  • 503 TooManyRequests — żądania wykraczające poza maksymalne żądania, które mogą być przetwarzane przez dostępne zasoby.

Przykłady

Update a server's blob auditing policy with all parameters
Update a server's blob auditing policy with minimal parameters

Update a server's blob auditing policy with all parameters

Przykładowe żądanie

PUT https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/blobauditingtest-4799/providers/Microsoft.Sql/servers/blobauditingtest-6440/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": [
      "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP",
      "FAILED_DATABASE_AUTHENTICATION_GROUP",
      "BATCH_COMPLETED_GROUP"
    ],
    "isAzureMonitorTargetEnabled": true
  }
}

Przykładowa odpowiedź

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

Update a server's blob auditing policy with minimal parameters

Przykładowe żądanie

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

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

Przykładowa odpowiedź

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

Definicje

Nazwa Opis
blobAuditingPolicyName

Nazwa zasad inspekcji obiektów blob.

BlobAuditingPolicyState

Określa stan inspekcji. Jeśli stan jest włączony, wymagany jest parametr storageEndpoint lub isAzureMonitorTargetEnabled.

ServerBlobAuditingPolicy

Zasady inspekcji obiektów blob serwera.

blobAuditingPolicyName

Nazwa zasad inspekcji obiektów blob.

Nazwa Typ Opis
default

string

BlobAuditingPolicyState

Określa stan inspekcji. Jeśli stan jest włączony, wymagany jest parametr storageEndpoint lub isAzureMonitorTargetEnabled.

Nazwa Typ Opis
Disabled

string

Enabled

string

ServerBlobAuditingPolicy

Zasady inspekcji obiektów blob serwera.

Nazwa Typ Opis
id

string

Identyfikator zasobu.

name

string

Nazwa zasobu.

properties.auditActionsAndGroups

string[]

Określa Actions-Groups i Akcje do inspekcji.

Zalecany zestaw grup akcji do użycia to następująca kombinacja — spowoduje to inspekcję wszystkich zapytań i procedur składowanych wykonywanych względem bazy danych, a także pomyślnych i zakończonych niepowodzeniem logowań:

BATCH_COMPLETED_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP.

Ta powyżej kombinacja jest również zestawem skonfigurowanym domyślnie podczas włączania inspekcji z Azure Portal.

Obsługiwane grupy akcji do inspekcji to (uwaga: wybierz tylko określone grupy, które obejmują potrzeby inspekcji. Użycie niepotrzebnych grup może prowadzić do bardzo dużych ilości rekordów inspekcji:

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

Są to grupy, które obejmują wszystkie instrukcje SQL i procedury składowane wykonywane względem bazy danych i nie powinny być używane w połączeniu z innymi grupami, ponieważ spowoduje to zduplikowanie dzienników inspekcji.

Aby uzyskać więcej informacji, zobacz Grupy akcji inspekcji na poziomie bazy danych.

W przypadku zasad inspekcji bazy danych można również określić określone akcje (należy pamiętać, że nie można określić akcji dla zasad inspekcji serwera). Obsługiwane akcje inspekcji to: WYBIERZ POLECENIE AKTUALIZUJ, WSTAW USUŃ INSTRUKCJE ODBIORUJ ODWOŁANIA

Ogólny formularz definiowania akcji do inspekcji: {action} ON {object} BY {principal}

Należy pamiętać, że w powyższym formacie obiekt może odwoływać się do obiektu, takiego jak tabela, widok lub procedura składowana albo cała baza danych lub schemat. W tych ostatnich przypadkach używane są odpowiednio formularze DATABASE::{db_name} i SCHEMA::{schema_name}.

Na przykład: select on dbo.myTable by public SELECT on DATABASE::myDatabase by public SELECT on SCHEMA::mySchema by public

Aby uzyskać więcej informacji, zobacz Akcje inspekcji na poziomie bazy danych

properties.isAzureMonitorTargetEnabled

boolean

Określa, czy zdarzenia inspekcji są wysyłane do usługi Azure Monitor. Aby wysyłać zdarzenia do usługi Azure Monitor, określ wartość "State" jako "Enabled" i "IsAzureMonitorTargetEnabled" jako true.

W przypadku konfigurowania inspekcji przy użyciu interfejsu API REST należy również utworzyć kategorię dzienników diagnostycznych "SQLSecurityAuditEvents" w bazie danych. Należy pamiętać, że w przypadku inspekcji na poziomie serwera należy użyć bazy danych "master" jako {databaseName}.

Format identyfikatora URI ustawień diagnostycznych: 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

Aby uzyskać więcej informacji, zobacz Interfejs API REST ustawień diagnostycznych lub Ustawienia diagnostyczne programu PowerShell

properties.isDevopsAuditEnabled

boolean

Określa stan inspekcji devops. Jeśli stan jest włączony, dzienniki devops zostaną wysłane do usługi Azure Monitor. Aby wysyłać zdarzenia do usługi Azure Monitor, określ wartość "State" jako "Enabled", "IsAzureMonitorTargetEnabled" jako true, a wartość "IsDevopsAuditEnabled" jako true

W przypadku konfigurowania inspekcji przy użyciu interfejsu API REST należy również utworzyć kategorię dzienników diagnostycznych z kategorią dzienników diagnostycznych "DevOpsOperationsAudit" w bazie danych master.

Format identyfikatora URI ustawień diagnostycznych: PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Sql/servers/{serverName}/databases/master/providers/microsoft.insights/diagnosticSettings/{settingsName}?api-version=2017-05-01-preview

Aby uzyskać więcej informacji, zobacz Interfejs API REST ustawień diagnostycznych lub Ustawienia diagnostyczne programu PowerShell

properties.isManagedIdentityInUse

boolean

Określa, czy tożsamość zarządzana jest używana do uzyskiwania dostępu do magazynu obiektów blob

properties.isStorageSecondaryKeyInUse

boolean

Określa, czy wartość storageAccountAccessKey jest kluczem pomocniczym magazynu.

properties.queueDelayMs

integer

Określa czas w milisekundach, który może upłynąć, zanim akcje inspekcji zostaną wymuszone do przetworzenia. Wartość minimalna domyślna to 1000 (1 sekunda). Wartość maksymalna to 2 147 483 647.

properties.retentionDays

integer

Określa liczbę dni przechowywania w dziennikach inspekcji na koncie magazynu.

properties.state

BlobAuditingPolicyState

Określa stan inspekcji. Jeśli stan jest włączony, wymagany jest parametr storageEndpoint lub isAzureMonitorTargetEnabled.

properties.storageAccountAccessKey

string

Określa klucz identyfikatora konta magazynu inspekcji. Jeśli stan jest włączony, a punkt końcowy magazynu jest określony, nie określa wartości storageAccountAccessKey będzie używać przypisanej przez system tożsamości zarządzanej programu SQL Server w celu uzyskania dostępu do magazynu. Wymagania wstępne dotyczące korzystania z uwierzytelniania tożsamości zarządzanej:

  1. Przypisz SQL Server tożsamość zarządzaną przypisaną przez system w usłudze Azure Active Directory (AAD).
  2. Udziel SQL Server tożsamości dostępu do konta magazynu, dodając rolę RBAC "Współautor danych obiektu blob usługi Storage" do tożsamości serwera. Aby uzyskać więcej informacji, zobacz Inspekcja magazynu przy użyciu uwierzytelniania tożsamości zarządzanej
properties.storageAccountSubscriptionId

string

Określa identyfikator subskrypcji magazynu obiektów blob.

properties.storageEndpoint

string

Określa punkt końcowy magazynu obiektów blob (np. https://MyAccount.blob.core.windows.net). Jeśli stan jest włączony, wymagany jest parametr storageEndpoint lub isAzureMonitorTargetEnabled.

type

string

Typ zasobu.