Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
Streszczenia bazy danych
Skrót najświeższego bloku w rejestrze bazy danych jest nazywany skrótem bazy danych. Reprezentuje stan wszystkich tabel rejestru w bazie danych w momencie wygenerowania bloku. Generowanie skrótu bazy danych jest wydajne, ponieważ obejmuje przetwarzanie tylko skrótów bloków, które zostały ostatnio dołączone.
Skróty bazy danych można wygenerować automatycznie przez system lub ręcznie przez użytkownika. Później można ich użyć do zweryfikowania integralności bazy danych.
Skróty bazy danych są generowane w postaci dokumentu JSON zawierającego skrót najnowszego bloku wraz z metadanymi identyfikatora bloku. Metadane obejmują czas wygenerowania skrótu oraz sygnaturę czasową zatwierdzenia ostatniej transakcji w tym bloku.
Proces weryfikacji i integralność bazy danych zależą od integralności skrótów wejściowych. W tym celu skróty bazy danych wyodrębnione z bazy danych muszą być przechowywane w zaufanym magazynie, za pomocą którego użytkownicy o wysokim poziomie uprawnień lub osoby atakujące bazy danych nie mogą manipulować.
Automatyczne generowanie i przechowywanie skrótów bazy danych
Notatka
Automatyczne generowanie i przechowywanie skrótów bazy danych w programie SQL Server obsługuje tylko konta usługi Azure Storage.
Rejestr integruje się z funkcją niezmiennego magazynowania usługi Azure Blob Storage i poufnym rejestrem Azure Confidental Ledger . Ta integracja zapewnia bezpieczne usługi magazynu na platformie Azure, aby chronić skróty bazy danych przed potencjalną manipulacją. Ta integracja zapewnia prosty i ekonomiczny sposób automatyzacji zarządzania podsumowaniami bez konieczności martwienia się o ich dostępność i replikację geograficzną. Rejestr poufny platformy Azure ma silniejszą gwarancję integralności dla klientów, którzy mogą być zaniepokojeni dostępem uprzywilejowanych administratorów do skrótu. Ta tabela porównuje funkcję niezmiennego magazynowania usługi Azure Blob Storage z Azure Confidential Ledger.
Automatyczne generowanie i przechowywanie skrótów bazy danych można skonfigurować za pośrednictwem witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Więcej informacji znajdziesz w sekcji Włącz automatyczne przechowywanie skrótów. Podczas konfigurowania automatycznego generowania i magazynowania skróty bazy danych są generowane w wstępnie zdefiniowanym interwale wynoszącym 30 sekund i przekazywane do wybranej usługi magazynu. Jeśli w systemie nie wystąpią żadne transakcje w 30-sekundowym interwale, skrót bazy danych nie zostanie wygenerowany i przekazany. Ten mechanizm zapewnia, że podsumowania danych są generowane tylko wtedy, gdy dane zostały zaktualizowane w Twojej bazie danych. Gdy punkt końcowy jest usługą Azure Blob Storage, serwer logiczny dla usługi Azure SQL Database lub Azure SQL Managed Instance tworzy nowy kontener o nazwie sqldbledgerdigests i używa wzorca nazewnictwa takiego jak: ServerName/DatabaseName/CreationTime
. Czas tworzenia jest wymagany, ponieważ bazę danych o tej samej nazwie można porzucić i odtworzyć lub przywrócić, co pozwala na różne wcielenia bazy danych o tej samej nazwie. Aby uzyskać więcej informacji, zobacz Rozważania dotyczące zarządzania trawieniem .
Notatka
W przypadku programu SQL Server kontener należy utworzyć ręcznie przez użytkownika.
Zasady niezmienności konta usługi Azure Storage
Jeśli używasz konta usługi Azure Storage do przechowywania skrótów bazy danych, skonfiguruj zasady niezmienności w kontenerze po aprowizacji, aby upewnić się, że skróty bazy danych są chronione przed manipulowaniem. Upewnij się, że polityka niezmienności zezwala na zabezpieczone zapisy dołączające do obiektów blob typu append oraz że polityka jest zablokowana.
Uprawnienie do konta usługi Azure Storage
Jeśli używasz usługi Azure SQL Database lub usługi Azure SQL Managed Instance, upewnij się, że serwer logiczny lub wystąpienie zarządzane (tożsamość systemu) ma wystarczające uprawnienia kontroli dostępu opartej na rolach (RBAC) do zapisu skrótów, dodając je do roli współautora danych obiektu blob usługi Storage. W przypadku korzystania z aktywnej geograficznej replikacji lub grup automatycznego przełączania awaryjnego upewnij się, że repliki pomocnicze mają takie same uprawnienia RBAC na koncie usługi Azure Storage.
Jeśli używasz SQL Server, musisz utworzyć sygnaturę dostępu współdzielonego (SAS) w kontenerze digestów, aby umożliwić SQL Server łączenie się i uwierzytelnianie na koncie usługi Azure Storage.
- Utwórz kontener na koncie usługi Azure Storage o nazwie sqldbledgerdigests.
- Utwórz zasady dotyczące kontenera z uprawnieniami odczytu, dodawania, tworzenia, zapisuoraz listy, a następnie wygeneruj klucz sygnatury dostępu współdzielonego.
- W przypadku kontenera sqldbledgerdigests używanego do przechowywania plików z odpisami utwórz poświadczenie programu SQL Server , którego nazwa jest zgodna ze ścieżką kontenera.
W poniższym przykładzie przyjęto założenie, że utworzono kontener usługi Azure Storage, zasady i klucz SAS. Jest to wymagane przez program SQL Server, aby uzyskać dostęp do plików skrótów w kontenerze.
W poniższym fragmencie kodu zastąp <your SAS key>
kluczem SAS. Klucz SAS wygląda jak 'sr=c&si=<MYPOLICYNAME>&sig=<THESHAREDACCESSSIGNATURE>'
.
CREATE CREDENTIAL [https://ledgerstorage.blob.core.windows.net/sqldbledgerdigests]
WITH IDENTITY='SHARED ACCESS SIGNATURE',
SECRET = '<your SAS key>'
Uprawnienie do rejestru poufnego platformy Azure
Jeśli używasz Azure SQL Database lub Azure SQL Managed Instance, upewnij się, że serwer logiczny lub wystąpienie zarządzane (tożsamość systemowa) ma wystarczające uprawnienia do zapisu skrótów, dodając go do roli współautora. Aby to zrobić, wykonaj kroki zarządzanie użytkownikami platformy Azure Confidential Ledger.
Notatka
Automatyczne generowanie i przechowywanie skrótów bazy danych w programie SQL Server obsługuje tylko konta usługi Azure Storage.
Konfigurowanie reguł grupy zabezpieczeń sieci usługi Azure SQL Managed Instance do pracy z Azure Confidential Ledger.
Jeśli używasz usługi Azure SQL Managed Instance, upewnij się, że skonfigurowałeś reguły sieci wirtualnej usługi Azure SQL Managed Instance, aby nawiązać połączenie z Azure Confidential Ledger. Aby uzyskać więcej informacji, zobacz Skonfiguruj reguły NSG dla Azure SQL Managed Instance, aby działały z Azure Confidential Ledger.
Ręczne generowanie i przechowywanie skrótów bazy danych
Możesz również wygenerować skrót bazy danych zgodnie z potrzebą, aby można było ręcznie przechowywać skrót w dowolnej usłudze lub urządzeniu, które uważasz za zaufane miejsce docelowe przechowywania. Możesz na przykład wybrać lokalne urządzenie typu "zapisz raz, odczytaj wiele" (WORM) jako miejsce docelowe. Do ręcznego wygenerowania skrótu bazy danych użyj procedury składowanej sys.sp_generate_database_ledger_digest w programie SQL Server Management Studio lub Azure Data Studio.
EXECUTE sp_generate_database_ledger_digest;
Zwrócony zestaw wyników jest pojedynczym wierszem danych. Powinien zostać zapisany w zaufanej lokalizacji magazynu jako dokument JSON w następujący sposób:
{
"database_name": "ledgerdb",
"block_id": 0,
"hash": "0xDC160697D823C51377F97020796486A59047EBDBF77C3E8F94EEE0FFF7B38A6A",
"last_transaction_commit_time": "2020-11-12T18:01:56.6200000",
"digest_time": "2020-11-12T18:39:27.7385724"
}
Uprawnienia
Generowanie skrótów bazy danych wymaga uprawnienia GENERATE LEDGER DIGEST
. Aby uzyskać szczegółowe informacje dotyczące uprawnień powiązanych z tabelami księgi, zobacz Uprawnienia.
Zagadnienia dotyczące zarządzania streszczeniami
Przywracanie bazy danych
Przywracanie bazy danych do wcześniejszego punktu w czasie, znane również jako przywracanie do punktu w czasie, jest operacją często używaną, gdy wystąpi błąd, a użytkownicy mogą szybko przywrócić stan bazy danych do wcześniejszego punktu w czasie. Podczas przekazywania wygenerowanych skrótów do usługi Azure Storage lub Rejestru poufnego platformy Azure czas tworzenia bazy danych jest przechwytywany, do którego te skróty są mapowane. Za każdym razem, gdy baza danych zostanie przywrócona, zostaje ona oznaczona nowym czasem utworzenia i ta technika umożliwia przechowywanie skrótów w różnych "wersjach" bazy danych. W przypadku programu SQL Server czas tworzenia jest bieżącą godziną UTC po włączeniu przekazywania skrótu po raz pierwszy. Rejestr zachowuje informacje dotyczące czasu wykonania operacji przywracania, umożliwiając procesowi weryfikacji używanie wszystkich odpowiednich skrótów w różnych wcieleniach bazy danych. Ponadto użytkownicy mogą sprawdzać wszystkie skróty dla różnych czasów tworzenia, aby określić, kiedy baza danych została przywrócona i do jakiego momentu została przywrócona. Ponieważ te dane są zapisywane w niezmiennym magazynie, te informacje są również chronione.
Notatka
Jeśli wykonasz natywne przywracanie kopii zapasowej bazy danych w usłudze Azure SQL Managed Instance, musisz ręcznie zmienić ścieżkę skrótu przy użyciu Azure Portal, PowerShell lub Azure CLI.
Aktywna replikacja geograficzna i zawsze włączone grupy dostępności
Aktywne grupy replikacji geograficznej lub automatycznego trybu failover można skonfigurować dla usługi Azure SQL Database lub Azure SQL Managed Instance. Replikacja między regionami geograficznymi jest asynchroniczna ze względu na wydajność, a tym samym umożliwia nieznaczne opóźnienie pomocniczej bazy danych w porównaniu z podstawową bazą danych. W przypadku geograficznego przejścia w tryb failover wszystkie najnowsze dane, które nie zostały jeszcze zreplikowane, zostaną utracone. Ledger wystawia wyłącznie skróty bazy danych dla danych, które zostały zreplikowane do geograficznych serwerów zapasowych, gwarantując, że skróty nigdy nie będą odwoływać się do danych, które mogą zostać utracone w przypadku geograficznego przejścia w tryb failover. Dotyczy to tylko automatycznego generowania i przechowywania skrótów bazy danych. W grupie failover zarówno podstawowa, jak i pomocnicza baza danych będą mieć tę samą ścieżkę digestu. Nawet w przypadku przejścia w tryb failover ścieżka skrótu nie zmienia się zarówno dla podstawowej, jak i pomocniczej bazy danych.
Jeśli grupa przełączania awaryjnego zostanie usunięta lub usuniesz link, obie bazy danych będą zachowywać się jako bazy podstawowe. W tym momencie zmieni się ścieżka dostępu do poprzedniej pomocniczej bazy danych, a do tej ścieżki dodamy folder o nazwie RemovedSecondaryReplica.
Jeśli baza danych jest częścią zawsze włączonej grupy dostępności lub linku wystąpienia zarządzanego w programie SQL Server, używana jest ta sama zasada co aktywna replikacja geograficzna. Przekazywanie podsumowań odbywa się tylko wtedy, gdy wszystkie transakcje zostały zreplikowane do replik wtórnych.