Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2022 (16.x) dan versi
yang lebih baru Azure SQL Database
Azure SQL Managed Instance
Dalam artikel ini, Anda memverifikasi integritas data dalam tabel ledger Anda. Jika Anda mengonfigurasi penyimpanan cetak ringkas otomatis pada database Anda, ikuti bagian T-SQL menggunakan penyimpanan cetak ringkas otomatis. Jika tidak, ikuti bagian T-SQL yang menggunakan digest yang dihasilkan secara manual.
Prasyarat
- Langganan Azure aktif jika Anda menggunakan Azure SQL Database atau Azure SQL Managed Instance. Jika Anda tidak memilikinya, buat akun gratis.
- Buat dan gunakan tabel ledger yang dapat diperbarui atau buat dan gunakan tabel ledger khusus tambahan.
- SQL Server Management Studio.
- Aktifkan opsi database UBAH opsi DATABASE SET (Transact-SQL) pada database sebelum Anda bisa menjalankan prosedur tersimpan verifikasi.
Menjalankan verifikasi ledger untuk database
- Transact-SQL menggunakan penyimpanan digest otomatis
- T-SQL menggunakan digest yang dihasilkan secara manual
Sambungkan ke database Anda dengan menggunakan SQL Server Management Studio.
Buat kueri baru dengan pernyataan Transact-SQL berikut:
DECLARE @digest_locations AS NVARCHAR (MAX) = (SELECT * FROM sys.database_ledger_digest_locations FOR JSON AUTO, INCLUDE_NULL_VALUES); SELECT @digest_locations AS digest_locations; BEGIN TRY EXECUTE sys.sp_verify_database_ledger_from_digest_storage @digest_locations; SELECT 'Ledger verification succeeded.' AS Result; END TRY BEGIN CATCH THROW; END CATCHCatatan
Anda juga dapat menemukan skrip verifikasi di portal Microsoft Azure. Buka portal Azure dan temukan database yang ingin Anda verifikasi. Di Keamanan, pilih opsi Ledger. Di panel Ledger , pilih Verifikasi database.
Mengeksekusi kueri. Anda melihat bahwa
digest_locationsmengembalikan lokasi saat ini dari tempat ringkasan database Anda disimpan dan lokasi sebelumnya. Hasil mengembalikan keberhasilan atau kegagalan verifikasi ledger.Buka set hasil
digest_locationsuntuk melihat lokasi cernaan Anda. Contoh berikut menunjukkan dua lokasi penyimpanan digest untuk database ini:pathmenunjukkan lokasi daftar ikhtisar.last_digest_block_idmenunjukkan ID blok dari digest terakhir yang disimpan di lokasipath.is_currentmenunjukkan apakah lokasi dipathadalah lokasi saat ini (benar) atau sebelumnya (salah).[ { "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 } ]
Penting
Saat Anda menjalankan verifikasi buku besar, periksa lokasi
digest_locationsuntuk memastikan digests yang digunakan dalam verifikasi diambil dari lokasi yang Anda harapkan. Pastikan bahwa pengguna istimewa tidak mengubah lokasi penyimpanan digest ke lokasi penyimpanan yang lebih tidak aman, seperti Azure Storage, tanpa kebijakan kekekalan yang dikonfigurasi dan dikunci.Verifikasi mengembalikan pesan berikut di jendela Hasil.
Jika tidak ada perubahan dalam database Anda, pesannya adalah:
Ledger verification successfulJika ada perubahan dalam database Anda, kesalahan berikut muncul di jendela Pesan :
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.