Share via


Doku veri ambarında dinamik veri maskeleme

Şunlar için geçerlidir: Microsoft Fabric'te SQL analiz uç noktası ve Ambarı

Dinamik veri maskeleme, hassas verilerin açıkta kalmasını kısıtlayarak bunları ayrıcalıksız kullanıcılara maskeler. Uygulamanızdaki güvenliği tasarımını ve kodlamasını büyük ölçüde basitleştirmek için kullanılabilir.

Dinamik veri maskeleme, yöneticilerin uygulama katmanı üzerinde en az etkiyle ne kadar hassas veri ortaya çıkaracağını belirtmesine olanak tanıyarak hassas verilerin yetkisiz görüntülenmesini önlemeye yardımcı olur. Dinamik veri maskeleme, sorgu sonuç kümelerindeki hassas verileri gizlemek için belirlenen veritabanı alanlarında yapılandırılabilir. Dinamik veri maskeleme ile veritabanındaki veriler değiştirilmez, bu nedenle maskeleme kuralları sorgu sonuçlarına uygulandığından mevcut uygulamalarla kullanılabilir. Birçok uygulama, var olan sorguları değiştirmeden hassas verileri maskeleyebilir.

  • Merkezi veri maskeleme ilkesi doğrudan veritabanındaki hassas alanlar üzerinde çalışır.
  • Hassas verilere erişimi olan ayrıcalıklı kullanıcıları veya rolleri belirleyin.
  • Dinamik veri maskeleme, tam maskeleme ve kısmi maskeleme işlevlerine ve sayısal veriler için rastgele bir maskeye sahiptir.
  • Basit Transact-SQL komutları maskeleri tanımlar ve yönetir.

Dinamik veri maskelemenin amacı hassas verilerin açığa çıkmasını sınırlandırmak ve verilere erişimi olmaması gereken kullanıcıların verileri görüntülemesini engellemektir. Dinamik veri maskeleme, veritabanı kullanıcılarının doğrudan veritabanına bağlanmasını ve hassas verilerin parçalarını kullanıma sunan kapsamlı sorgular çalıştırmasını engellemeyi hedeflemez.

Dinamik veri maskeleme, sütun düzeyinde güvenlik ve satır düzeyi güvenlik gibi diğer Doku güvenlik özelliklerini tamamlayıcı niteliktedir. Veritabanındaki hassas verileri korumak için bu veri koruma özelliklerinin birlikte kullanılması kesinlikle önerilir.

Dinamik veri maskesi tanımlama

Maskeleme kuralı, tablodaki bir sütundaki verileri karartmak için tanımlanabilir. Beş maske türü mevcuttur.

İşlev Tanım Örnekler
Varsayılan Belirlenen alanların veri türlerine göre tam maskeleme.

Dize veri türleri için, alanın boyutu 4 karakterden azsa (veya daha az) kullanın (char, nchar, varchar, nvarchar, text, ntext). XXXX

Sayısal veri türleri için sıfır değeri kullanın (bigint, bit, ondalık, int, para, sayısal, smallint, smallmoney, tinyint, float, real).

Tarih ve saat veri türleri için kullanın (date, datetime2, datetime, datetimeoffset, smalldatetime, time). 1900-01-01 00:00:00.0000000

İkili veri türleri için ASCII değeri 0'ın tek bir baytını (ikili, varbinary, görüntü) kullanın.
Örnek sütun tanımı söz dizimi: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Değişiklik söz dizimi örneği: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
E-posta E-posta adresinin ilk harfini ve ".com" sabit sonekini e-posta adresi biçiminde kullanıma sunan maskeleme yöntemi. aXXX@XXXX.com. Örnek tanım söz dizimi: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Değişiklik söz dizimi örneği: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Rasgele Belirtilen aralıktaki rastgele bir değerle özgün değeri maskeleme amacıyla herhangi bir sayısal türde kullanılan rastgele bir maskeleme işlevi. Örnek tanım söz dizimi: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Değişiklik söz dizimi örneği: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Özel Dize İlk ve son harfleri kullanıma sunan ve ortaya özel bir doldurma dizesi ekleyen maskeleme yöntemi. prefix,[padding],suffix

Özgün değer maskenin tamamını tamamlayamayacak kadar kısaysa, ön ekin veya son ekin bir bölümü gösterilmez.
Örnek tanım söz dizimi: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

Değişiklik söz dizimi örneği: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Bu, gibi 555.123.1234 bir telefon numarasını olarak 5XXXXXXXdönüştürür.

Ek örnek:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

Bu, gibi 555.123.1234 bir telefon numarasını olarak 555.1XXXXXXXdönüştürür.

Daha fazla örnek için bkz . Synapse Veri Ambarı'nda dinamik veri maskelemeyi uygulama.

İzinler

Çalışma alanında Yönetici istrator, Üye veya Katkıda Bulunan haklarına sahip olmayan ve Ambarda yükseltilmiş izinleri olmayan kullanıcılar maskelenmiş verileri görür.

Dinamik veri maskesine sahip bir tablo oluşturmak için herhangi bir özel izne ihtiyacınız yoktur, yalnızca standart CREATE TABLE ve ALTER şema izinlerine sahip olursunuz.

Bir sütunun maskesini eklemek, değiştirmek veya kaldırmak için tabloda izin ve ALTER izin gerekirALTER ANY MASK. Bir güvenlik görevlisine izin ALTER ANY MASK vermek uygun olur.

Tablo üzerinde izni olan SELECT kullanıcılar tablo verilerini görüntüleyebilir. Maskelenmiş olarak tanımlanan sütunlar maskelenmiş verileri görüntüler. Maskelemenin UNMASK tanımlandığı sütunlardan maskelenmemiş verileri alması için kullanıcıya izin verin.

CONTROL Veritabanındaki izin, kullanıcının maskelenmemiş verileri görüntülemesine olanak tanıyan hem hem UNMASK de ALTER ANY MASK iznini içerir. Yönetici istrative kullanıcılar veya Yönetici, Üye veya Katkıda Bulunan gibi roller tasarım gereği veritabanında CONTROL iznine sahiptir ve maskelenmemiş verileri varsayılan olarak görüntüleyebilir. Ambar'da yükseltilmiş izinler izin içerir CONTROL .

Güvenlikle ilgili dikkat edilmesi gerekenler: Çıkarım veya deneme yanılma teknikleri kullanarak maskeleme işlemini atlama

Dinamik veri maskeleme, uygulama tarafından kullanılan önceden tanımlanmış bir dizi sorguda veri açığa çıkarma özelliğini sınırlayarak uygulama geliştirmeyi basitleştirmek için tasarlanmıştır. Dinamik Veri Maskeleme, verilere doğrudan erişirken hassas verilerin yanlışlıkla açığa çıkmasını önlemek için de yararlı olsa da, sorgu izinlerine sahip ayrıcalıksız kullanıcıların gerçek verilere erişim elde etmek için teknikler uygulayabileceğini unutmayın.

Örneğin, Ambarda sorgu çalıştırmak için yeterli ayrıcalıklara sahip olan ve temel alınan verileri 'tahmin etmeye' çalışan ve sonuçta gerçek değerleri çıkaran bir kullanıcı düşünün. Sütunda [Employee].[Salary] tanımlanmış bir maskemiz olduğunu ve bu kullanıcının doğrudan veritabanına bağlandığını ve değerleri tahmin etmeye başladığını ve sonunda tablodaki Employees değeri çıkardığını [Salary] varsayalım:

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

Sonuçlar:

Kimlik Veri Akışı Adı Maaş
62543 Jane Doe 0
91245 John Smith 0

Bu, Dinamik veri maskelemenin, Ambar veya SQL analiz uç noktasına sorgu erişimi olan kullanıcılardan gelen hassas verilerin güvenliğini tamamen sağlamak için tek başına kullanılmaması gerektiğini gösterir. Hassas verilerin açığa çıkmasını önlemek için uygundur, ancak temel alınan verileri çıkarsamak için kötü amaçlı amaçlara karşı koruma sağlamaz.

SQL ayrıntılı izinleriyle nesne düzeyinde güvenliği düzgün bir şekilde yönetmek ve her zaman gerekli en düşük izin ilkesini izlemek önemlidir.

Sonraki adım