Aracılığıyla paylaş


Zamansal tablo güvenliği

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Geçici tablolar için geçerli olan güvenliği anlamak için, zamansal tablolar için geçerli olan güvenlik ilkelerini anlamanız gerekir. Bu güvenlik ilkelerini anladıktan sonra, CREATE TABLE, ALTER TABLEve SELECT deyimleri etrafında güvenliği incelemeye hazır olursunuz.

Güvenlik ilkeleri

Aşağıdaki tabloda, zamana bağlı tablolar için geçerli olan güvenlik ilkeleri açıklanmaktadır:

Principle Description
Sistem sürümünü etkinleştirme/devre dışı bırakma, etkilenen nesnelerde en yüksek ayrıcalıkları gerektirir SYSTEM_VERSIONING etkinleştirilmesi ve devre dışı bırakılması için hem geçerli hem de geçmiş tablosunda CONTROL izni gerekir.
Geçmiş verileri doğrudan değiştirilemez SYSTEM_VERSIONING ONdurumunda, kullanıcılar mevcut veya geçmiş tablosundaki izinlerinden bağımsız olarak geçmiş verilerini değiştiremez. Bu sınırlama hem veri hem de şema değişikliklerini içerir. 1
Geçmiş verilerini sorgulamak için geçmiş tablosunda SELECT izni gerekir Geçerli tabloda SELECT izni olan bir kullanıcının, geçmiş tablosunda otomatik olarak SELECT izni yoktur.
Denetim, geçmiş tablosunu etkileyen işlemleri belirli şekillerde gösterir Geçerli tablodaki denetim ayarları, geçmiş tablosuna otomatik olarak uygulanmaz. Geçmiş tablosu için denetimin açıkça etkinleştirilmesi gerekir. Etkinleştirildikten sonra, geçmiş tablosunda denetim, verilere erişmeye yönelik tüm doğrudan girişimleri düzenli olarak yakalar (başarılı olup olmasalar da).

zamansal sorgu uzantısıyla SELECT, geçmiş tablosunun bu işlemden etkilendiğini gösterir.

CREATE/ALTER zamansal tablo, izin denetiminin geçmiş tablosunda da gerçekleştiği bilgisini gösterir. Denetim dosyası, geçmiş tablosu için ek kayıtlar içerir.

Geçerli tablodaki DML işlemleri, geçmiş tablosunun etkilendiğini gösteriyor, ancak DML’nin additional_informationsonucu olduğu bağlamını SYSTEM_VERSIONING sağlıyor.

1 Geçerli tablo ve geçmiş tablosu üzerinde ALTER izniniz varsa ve geçerli tabloya bir sütun bırakırsanız, SYSTEM_VERSIONINGONolsa bile geçmiş tablosundaki ilişkili sütun da bırakılır.

Şema işlemlerini gerçekleştirme

SYSTEM_VERSIONING ONolarak ayarlandığında şema değiştirme işlemleri sınırlıdır.

İzin verilmeyen ALTER şema işlemleri

Operation Geçerli tablo Geçmiş tablosu
DROP TABLE Disallowed Disallowed
ALTER TABLE...SWITCH PARTITION Yalnızca SWITCH IN (bkz. Zamansal tablolar içeren bölüm) Yalnızca SWITCH OUT (bkz. Zamansal tablolar içeren bölüm)
ALTER TABLE...DROP PERIOD Disallowed N/A
ALTER TABLE...ADD PERIOD N/A Disallowed

İzin verilen ALTER TABLE işlemleri

Operation Current History
ALTER TABLE...REBUILD İzin verilmiş (bağımsız olarak) İzin verilen (bağımsız)
CREATE INDEX İzin verilen (bağımsız) Bağımsız şekilde izin verildi.
CREATE STATISTICS İzinli (bağımsız) İzin verildi (bağımsız)

CREATE zamana bağlı tablo deyiminin güvenliği

Feature Yeni geçmiş tablosu oluşturma Mevcut geçmiş tablosunu yeniden kullanma
İzin gerekiyor Veritabanında izin CREATE TABLE

geçerli ve geçmiş durum tablolarının oluşturulduğu şemalar üzerinde ALTER izni
Veritabanında izin CREATE TABLE

Geçerli tablonun oluşturulacağı şema üzerinde ALTER izinlerine sahip olunmalıdır.

Geçici tablo oluşturulurken CONTROL deyiminin parçası olarak belirtilen geçmiş tablosu üzerindeki CREATE TABLE izni.
Audit Denetim, kullanıcıların iki nesne oluşturmayı denediğini gösterir. veritabanında tablo oluşturma izinlerinin olmaması veya her iki tablonun şemalarını değiştirme izinlerinin olmaması nedeniyle işlem başarısız olabilir. Denetim, zamansal tablonun oluşturulduğunu gösterir. Veritabanında tablo oluşturma izni olmaması, geçici tablo şemasını değiştirme izinlerinin olmaması veya geçmiş tablosunda izin olmaması nedeniyle işlem başarısız olabilir.

ALTER zamana bağımlı tablo AYARLA (SİSTEM SÜRÜMLENDİRME AÇIK/KAPALI) deyiminin güvenliği

Feature Yeni geçmiş tablosu oluşturma Mevcut geçmiş tablosunu yeniden kullanma
İzin gerekiyor Veritabanında CONTROL izni.

Veritabanında CREATE TABLE izni.

geçmiş tablosunun oluşturulduğu şemalar üzerinde ALTER iznine sahip olma.
Değiştirilen özgün tabloda CONTROL izni.

CONTROL deyiminin parçası olarak belirtilen geçmiş tablosunda ALTER TABLE izni.
Audit Denetim, zamana bağlı tablonun değiştirildiğini ve geçmiş tablosunun aynı anda oluşturulduğunu gösterir. Bu işlem veritabanında tablo oluşturma izinlerinin olmaması, geçmiş tablosu için şema değiştirme izinlerinin olmaması veya geçici tabloyu değiştirme izni olmaması nedeniyle başarısız olabilir. Denetim, zamana bağlı tablonun değiştirildiğini, ancak işlemin geçmiş tablosuna erişim gerektirdiğini gösterir. Geçmiş tablosunda izin olmaması veya geçerli tablodaki izinlerin olmaması nedeniyle işlem başarısız olabilir.

SELECT deyiminin güvenliği

geçmiş tablosunu etkilemeyen SELECT deyimleri için SELECT izni değişmeden kalır. Geçmiş tablosunu etkileyen SELECT deyimleri için hem geçerli tabloda hem de geçmiş tablosunda SELECT izni gerekir.