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
Güncellenebilir kayıt defteri tabloları, kullanıcıların güncelleme ve silme işlemi yapabildiği ve aynı zamanda kurcalama kanıtı özellikleri sunan sistem sürümlü tablolardır. Güncelleştirmeler veya silmeler gerçekleştiğinde, bir satırın önceki tüm sürümleri geçmiş tablosu olarak bilinen ikincil bir tabloda korunur. Geçmiş tablosu güncelleştirilebilir kayıt defteri tablosunun şemasını yansıtır. Bir satır güncelleştirildiğinde, satırın en son sürümü kayıt defteri tablosunda kalırken, önceki sürümü sistem tarafından geçmiş tablosuna, uygulamaya saydam bir şekilde eklenir.
Hem güncelleştirilebilir kayıt defteri tabloları hem de zamansal tablolar , veritabanı altyapısının ikincil geçmiş tablolarındaki geçmiş satır sürümlerini yakaladığı sistem sürümü tablolardır. Her iki teknoloji de benzersiz avantajlar sağlar. Güncellenebilir defter tabloları, mevcut ve geçmiş verilerin üzerinde yapılan değişikliklerin tespit edilebilir olmasını sağlar. Zamana bağlı tablolar, yalnızca geçerli zamanda doğru olan veriler yerine herhangi bir noktada depolanan verilerin sorgulanması için destek sağlar. Hem güncelleştirilebilir kayıt defteri tabloları hem de zamana bağlı tablolar oluşturarak her iki teknolojiyi birlikte kullanabilirsiniz.
LEDGER = ON ekstrenizde bağımsız değişkenini belirterek güncelleştirilebilir bir kayıt defteri tablosu oluşturabilirsiniz.
Tavsiye
LEDGER = ON , bir kayıt defteri veritabanında güncelleştirilebilir kayıt defteri tabloları oluştururken isteğe bağlıdır. Varsayılan olarak, her tablo bir kayıt defteri veritabanında güncelleştirilebilir bir kayıt defteri tablosudur.
T-SQL deyiminizde LEDGER argümanı belirttiğinizde kullanılabilen seçenekler hakkında bilgi için bkz. CREATE TABLE (Transact-SQL).
Önemli
Kayıt defteri tablosu oluşturulduktan sonra, kayıt defteri tablosu olmayan bir tabloya geri döndürülemez. Sonuç olarak, saldırgan bir kayıt defteri tablosundaki kayıt defteri özelliklerini geçici olarak kaldıramaz, değişiklik yapamaz ve sonra kayıt defteri işlevselliğini yeniden etkinleştiremez.
Güncelleştirilebilir kayıt defteri tablo şeması
Güncelleştirilebilir bir kayıt defteri tablosunun, tabloda hangi işlemlerin değişiklik yaptığını ve satırların hareket tarafından güncelleştirildiği işlemlerin sırasını belirten meta verileri içeren aşağıdaki GENERATED ALWAYS sütunlarına sahip olması gerekir. Bu veriler, verilerin zaman içinde nasıl eklendiğini anlamak amacıyla adli tıp açısından yararlıdır.
GENERATED ALWAYS deyiminde kayıt defteri tablosunun ve kayıt defteri geçmişi tablosunun gerekli sütunlarını belirtmezseniz, sistem sütunları otomatik olarak ekler ve aşağıdaki varsayılan adları kullanır. Daha fazla bilgi için güncelleştirilebilir kayıt defteri tablosu oluşturma ile ilgili örneklere bakın.
| Varsayılan sütun adı | Veri türü | Description |
|---|---|---|
| ledger_start_transaction_id | bigint | Satır sürümü oluşturan işlemin kimliği |
| defter_sonu_işlem_kimliği | bigint | Satır sürümünü silen işlemin kimliği |
| defter_başlangıç_sıra_numarası | bigint | Bir işlem içindeki, bir satır sürümü oluşturan işlemin sıra numarası |
| defter_son_sıra_numarası | bigint | Satır sürümünü silen bir işlem içindeki işlemin sıra numarası |
Geçmiş tablosu
Güncelleştirilebilir bir kayıt defteri tablosu oluşturulduğunda geçmiş tablosu otomatik olarak oluşturulur. Geçmiş tablosu güncelleştirilebilir kayıt defteri tablosundaki güncelleştirmeler ve silmeler nedeniyle değiştirilen satırların geçmiş değerlerini yakalar. Geçmiş tablosunun şeması, ilişkili olduğu güncelleştirilebilir kayıt defteri tablosunun şemasını yansıtır.
Güncelleştirilebilir bir kayıt defteri tablosu oluşturduğunuzda, geçmiş tablonuzu içerecek şemanın adını ve geçmiş tablosunun adını belirtebilir veya sistemin geçmiş tablosunun adını oluşturup kayıt defteri tablosuyla aynı şemaya eklemesini sağlayabilirsiniz. Sistem tarafından oluşturulan adlara sahip geçmiş tabloları anonim geçmiş tabloları olarak adlandırılır. Anonim geçmiş tablosunun adlandırma kuralı.<schema><updatableledgertablename>. <GUID>MSSQL_LedgerHistoryFor_.
Defter görünümü
Sistem, güncelleştirilebilir her kayıt defteri tablosu için otomatik olarak genel muhasebe görünümü olarak adlandırılan bir görünüm oluşturur. Kayıt defteri görünümü, güncelleştirilebilir kayıt defteri tablosunun ve ilişkili geçmiş tablosunun bir birleşimidir. Kayıt defteri görünümü, geçmiş tablosundaki geçmiş verileri birleştirerek güncelleştirilebilir kayıt defteri tablosunda gerçekleşen tüm satır değişikliklerini raporlar. Bu görünüm, kullanıcıların, iş ortaklarının veya denetçilerin tüm geçmiş işlemleri analiz etmelerini ve olası kurcalama durumlarını algılamalarını sağlar. Her satır işlemine, hareket eden işlemin kimliği ve işlemin bir DELETE veya INSERTolup olmadığı eşlik eder. Kullanıcılar, işlemin yürütülme zamanı ve bunu yürüten kullanıcının kimliği hakkında daha fazla bilgi alabilir ve bu işlem tarafından gerçekleştirilen diğer işlemlerle ilişkilendirebilir.
Örneğin, bir bankacılık senaryosunun işlem geçmişini izlemek istiyorsanız, genel muhasebe görünümü zaman içindeki işlemlerin tarihçesini sağlar. Kayıt defteri görünümünü kullanarak güncelleştirilebilir kayıt defteri tablosunu ve geçmiş tablolarını bağımsız olarak görüntülemeniz veya bunu yapmak için kendi görünümünüzü oluşturmanız gerekmez.
Kayıt defteri görünümünü kullanma örneği için bkz. Güncelleştirilebilir kayıt defteri tabloları oluşturma ve kullanma.
Kayıt defteri görünümünün şeması güncelleştirilebilir kayıt defteri ve geçmiş tablosunda tanımlanan sütunları yansıtır, ancak OLUŞTURULAN ALWAYS sütunları güncelleştirilebilir kayıt defteri ve geçmiş tablolarından farklıdır.
Defter görünümü şeması
Uyarı
Kayıt defteri görünümü sütun adları, <ledger_view_option> deyimiyle parametresi kullanılarak tablo oluşturduğunuzda özelleştirilebilir. Daha fazla bilgi için bkz. kayıt defteri görünümü seçenekleri ve CREATE TABLE (Transact-SQL) içindeki ilgili örnekler.
| Varsayılan sütun adı | Veri türü | Description |
|---|---|---|
| defter_işlem_kimliği | bigint | Satır sürümünü oluşturan veya silen işlemin kimliği. |
| defter_sıra_numarası | bigint | Tablodaki işlem içindeki satır düzeyi işlemin sıra numarası. |
| ledger_işlem_tipi | tinyint | İçerir 1 (INSERT) veya 2 (DELETE). Kayıt defteri tablosuna satır eklemek, kayıt defteri görünümünde bu sütunu içeren 1 yeni bir satır oluşturur. Genel muhasebe tablosundan bir satırı silmek, kayıt defteri görünümünde bu sütunu içeren 2 yeni bir satır oluşturur. Genel muhasebe tablosundaki bir satırın güncelleştirilmesi, genel muhasebe görünümünde iki yeni satır oluşturur. Bir satır bu sütunda 2 (DELETE) içeriyor ve diğer satır 1 (INSERT) içeriyor. |
| defter_işlem_tipi_açıklaması | nvarchar(128) |
INSERT veya DELETE içerir. Daha fazla bilgi için önceki satıra bakın. |