Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2022 (16.x) ve sonraki sürümleri
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Bu makalede, kayıt defteri tablolarınızdaki verilerin bütünlüğünü doğrulayacaksınız. Veritabanınızda Otomatik özet depolama yapılandırdıysanız otomatik özet depolamakullanarakT-SQL bölümünü izleyin. Aksi takdirde, T-SQL'i, el ile oluşturulmuş bir özet bölümünü kullanarak takip edin.
Önkoşullar
- Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği kullanıyorsanız etkin bir Azure aboneliğine sahip olun. Aboneliğiniz yoksa ücretsiz bir hesap oluşturun.
- Güncellenebilir kayıt defteri tabloları oluşturun ve kullanın veya yalnızca eklenen kayıt defteri tabloları oluşturun ve kullanın.
- SQL Server Management Studio.
- Doğrulama saklı yordamlarını çalıştırmadan önce veritabanında ALLOW_SNAPSHOT_ISOLATION seçeneğinin etkinleştirilmiş olması gerekir.
Veritabanı için kayıt defteri doğrulamasını çalıştırma
- Otomatik özet saklama kullanarak T-SQL
- T-SQL'i, el ile oluşturulmuş bir özet ile kullanarak
SQL Server Management Studio kullanarak veritabanınıza bağlanın.
Aşağıdaki T-SQL deyimiyle yeni bir sorgu oluşturun:
DECLARE @digest_locations NVARCHAR(MAX) = (SELECT * FROM sys.database_ledger_digest_locations FOR JSON AUTO, INCLUDE_NULL_VALUES);SELECT @digest_locations as digest_locations; BEGIN TRY EXEC sys.sp_verify_database_ledger_from_digest_storage @digest_locations; SELECT 'Ledger verification succeeded.' AS Result; END TRY BEGIN CATCH THROW; END CATCHSorguyu çalıştır. digest_locations veritabanı özetlerinizin depolandığı geçerli konumu ve önceki konumları döndürdüğünü göreceksiniz. Sonuç, kayıt defteri doğrulama işleminin başarısını veya başarısızlığını döndürür.
Özetlerinizin konumlarını görüntülemek için digest_locations sonuç kümesini açın. Aşağıdaki örnekte bu veritabanı için iki özet depolama konumu gösterilmektedir:
yol özetlerin konumunu gösterir.
last_digest_block_id, yolu konumunda depolanan son özetin blok kimliğini gösterir.
is_current, yolu üzerindeki konumunun geçerli (doğru) mi yoksa önceki (yanlış) mi olduğunu gösterir.
[ { "path": "https:\/\/digest1.blob.core.windows.net\/sqldbledgerdigests\/janderstestportal2server\/jandersnewdb\/2021-05-20T04:39:47.6570000", "last_digest_block_id": 10016, "is_current": true }, { "path": "https:\/\/jandersneweracl.confidential-ledger.azure.com\/sqldbledgerdigests\/janderstestportal2server\/jandersnewdb\/2021-05-20T04:39:47.6570000", "last_digest_block_id": 1704, "is_current": false } ]
Önemli
Kayıt defteri doğrulamasını çalıştırdığınızda doğrulamada kullanılan özetlerin beklediğiniz konumlardan alındığından emin olmak için digest_locations konumunu inceleyin. Ayrıcalıklı bir kullanıcının özet depolamanın konumlarını yapılandırılmış ve kilitli bir değiştirilemezlik ilkesi olmadan Azure Depolama gibi korumasız bir depolama konumuna değiştirmediğinden emin olmak istiyorsunuz.
Doğrulama, Sonuçları penceresinde aşağıdaki iletiyi döndürür.
Veritabanınızda herhangi bir değişiklik yapılmadıysa ileti şu şekildedir:
Ledger verification successfulVeritabanınızda değişiklik yapıldıysa, İletiler penceresinde aşağıdaki hata görüntülenir:
Failed to execute query. Error: The hash of block xxxx in the database ledger doesn't match the hash provided in the digest for this block.