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.
Azure Synapse Analytics, dedicated SQL havuzlarında dinamik veri maskelemesini (DDM) destekler. Dinamik veri maskeleme, hassas verilerin görünürlüğünü ayrıcalık sahibi olmayan kullanıcılardan gizler.
Dinamik veri maskeleme, müşterilerin hassas verilerin ne kadarının gösterileceğini uygulama katmanı üzerinde en az etkiyle belirlemesini sağlayarak hassas verilere yetkisiz erişimi önlemeye yardımcı olur. Bu, belirlenen veritabanı alanları üzerinde sorgunun sonuç kümesindeki hassas verileri gizleyen, ancak veritabanındaki veriler değiştirilmeyen ilke tabanlı bir güvenlik özelliğidir.
Örneğin, bir çağrı merkezindeki hizmet temsilcisi, e-posta adresinin birkaç karakterini onaylayarak arayan kişiyi tanımlayabilir, ancak e-posta adresinin tamamı hizmet temsilcisine açıklanmamalıdır. Herhangi bir sorgunun sonuç kümesindeki e-posta adresinin tamamını maskeleyen bir maskeleme kuralı tanımlanabilir. Başka bir örnek olarak, bir geliştiricinin uyumluluk düzenlemelerini ihlal etmeden sorun giderme amacıyla üretim ortamlarını sorgulaması için kişisel verileri korumak için uygun bir veri maskesi tanımlanabilir.
Not
Dinamik veri maskelemesi Azure Synapse özel SQL havuzlarında destekleniyor, ancak Apache Spark havuzları ve sunucusuz SQL havuzları için desteklenmiyor.
Dinamik veri maskeleme temelleri
Azure portalında yapılandırma panelinizde Güvenlik altındaki Dinamik Veri Maskeleme panelini seçerek dinamik veri maskeleme politikası kurarsınız. Ayrıca Transact-SQL (T-SQL) de kullanabilirsiniz, bu makaledeki Granular izin örneğinde olduğu gibi. Daha fazla bilgi için bkz . Dinamik veri maskeleme.
Dinamik veri maskeleme ilkesi
Maskelemenin dışında tutulan SQL kullanıcıları: Microsoft Entra ID kimliklerini içerebilen ve SQL sorgu sonuçlarında maskelenmemiş veriler alan SQL kullanıcılarından oluşan bir dizi. Sunucu yöneticisi, Microsoft Entra admin ve db_owner rolü gibi yönetici haklarına sahip kullanıcılar özgün verileri maske olmadan görüntüleyebilir. (Not: SQL Server'daki sysadmin rolü için de geçerlidir)
Maskeleme kuralları: Maskelenecek belirlenen alanları ve kullanılan maskeleme işlevini tanımlayan bir kural kümesi. Ayrılan alanlar veritabanı şeması adı, tablo adı ve sütun adı kullanılarak tanımlanır.
Maskeleme işlevleri: Farklı senaryolar için verilerin açığa çıkmasını kontrol eden bir yöntem kümesi.
Maskeleme işlevi Maskeleme mantığı Varsayılan Belirlenen alanların veri türlerine göre tam maskeleme
Dize veri türleri için alanın boyutu 4 karakterden azsa nchar,XXXXkullanın (veya daha az).
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).
*1900-01-01date/time veri türleri için kullanılır (date, datetime2, datetime, datetimeoffset, smalldatetime, time).Kredi kartı Belirlenen alanların son dört basamağını açığa çıkaran ve kredi kartı biçiminde ön ek olarak sabit bir dize ekleyen maskeleme yöntemi. XXXX-XXXX-XXXX-1234E-posta İlk harfi gösteren ve e-posta adresi biçiminde sabit bir dize ön eki kullanarak etki alanını XXX.com ile değiştiren maskeleme yöntemi. aXX@XXXX.comRastgele sayı Seçilen sınırlara ve gerçek veri türlerine göre rastgele bir sayı oluşturan maskeleme yöntemi. Belirlenen sınırlar eşitse maskeleme işlevi sabit bir sayıdır. Özel metin İlk ve son karakterleri gösteren ve ortaya özel bir doldurma dizesi ekleyen maskeleme yöntemi. Özgün dize, kullanıma sunulan ön ekten ve son ekten daha kısaysa, yalnızca doldurma dizesi kullanılır. prefix[padding]suffixTarih saat Tarih/saat sütunları(datetime, datetime2, date, time, datetimeoffset ve smalldatetime) için ayrıntılı maskeleme sağlar. Yıl (), ay (), gün ( datetime("Y")), saat (datetime("M")datetime("D")), dakika (datetime("h")datetime("m")) veya saniye (datetime("s")) gibi belirli bileşenleri maskeleyebilirsiniz. Bu işlevi T-SQL kullanarak uygularsınız.
Örneğin:
- Maske yılı:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("Y")').
- Maske ayı:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("M")').
- Maske dakikası:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("m")').
Maskelenmesi önerilen alanlar
DDM öneri altyapısı, veritabanınızdaki belirli alanları potansiyel olarak hassas alanlar olarak işaretler; bunlar maskeleme için iyi adaylar olabilir. Portaldaki Dinamik Veri Maskeleme bölmesinde veritabanınız için önerilen sütunları görürsünüz. Bir veya daha fazla sütun için Maske Ekle'yi seçin, ardından uygun maskeleme işlevini seçin ve bu alanlara maske uygulamak için Kaydet'i seçin.
T-SQL kullanarak dinamik veri maskelemesini yönetme
- Dinamik veri maskesi oluşturmak için bkz. Dinamik Veri Maskesi Oluşturma.
- Mevcut bir sütuna maske eklemek veya düzenlemek için bkz. Mevcut Sütunda Maske Ekleme veya Düzenleme.
- Maskelenmemiş verileri görüntüleme izinleri vermek için bkz. Maskelenmemiş Verileri Görüntüleme İzinleri Verme.
- Dinamik veri maskesini kaldırmak için bkz. Dinamik Veri Maskesini Kaldırma.
PowerShell cmdlet'lerini kullanarak veritabanınız için dinamik veri maskeleme ayarlama
Veri maskeleme ilkeleri
Veri maskeleme kuralları
- Get-AzSqlDatabaseDataMaskingRule
- New-AzSqlDatabaseDataMaskingRule
- Remove-AzSqlDatabaseDataMaskingRule
- Set-AzSqlDatabaseDataMaskingRule
REST API kullanarak veritabanınız için dinamik veri maskeleme ayarlama
Veri maskeleme ilkesini ve kurallarını program aracılığıyla yönetmek için REST API'yi kullanabilirsiniz. Yayımlanan REST API aşağıdaki işlemleri destekler:
Veri maskeleme ilkeleri
- Oluştur veya Güncelle: Veritabanı veri maskeleme ilkesi oluşturur veya günceller.
- Get: Veritabanı veri maskeleme ilkesini alır.
Veri maskeleme kuralları
- Oluştur veya Güncelleştir: Veritabanı veri maskeleme kuralı oluşturur veya güncelleştirir.
- Veritabanına Göre Listele: Veritabanı veri maskeleme kurallarının listesini alır.
Permissions
Dinamik veri maskelemesi T-SQL komutuyla kullanılırken izinler hakkında daha fazla bilgi edinmek için İzinler bölümüne bakınız.
Ayrıntılı izin örneği
Hassas verilere yetkisiz erişimi engelleyin ve veritabanının farklı düzeylerinde yetkisiz kullanıcılara karşı maskeleyerek kontrol sağlayın. Herhangi bir veritabanı kullanıcısına veya rolüne veritabanı düzeyinde, şema düzeyinde, tablo düzeyinde veya sütun düzeyinde izinler verebilir veya iptal UNMASK edebilirsiniz. Microsoft Entra kimlik doğrulaması ile birlikte Azure UNMASK ortamınızda tutulan kullanıcılar, gruplar ve uygulamalar için izinler yönetilebilir. İzin, UNMASK veritabanında depolanan verilere yetkisiz erişimi denetlemek ve sınırlamak ve veri güvenliği yönetimini geliştirmek için ayrıntılı bir yol sağlar.
Kullanıcı tablolarını içerecek şema oluşturma:
CREATE SCHEMA Data; GOMaskelenmiş sütunlarla tablo oluşturma:
CREATE TABLE Data.Membership ( MemberID INT IDENTITY (1, 1) NOT NULL, FirstName VARCHAR (100) MASKED WITH (FUNCTION = 'partial(1, "xxxxx", 1)') NULL, LastName VARCHAR (100) NOT NULL, Phone VARCHAR (12) MASKED WITH (FUNCTION = 'default()') NULL, Email VARCHAR (100) MASKED WITH (FUNCTION = 'email()') NOT NULL, DiscountCode SMALLINT MASKED WITH (FUNCTION = 'random(1, 100)') NULL, BirthDay DATETIME MASKED WITH (FUNCTION = 'default()') NULL );Örnek veri ekleme:
INSERT INTO Data.Membership (FirstName, LastName, Phone, Email, DiscountCode, BirthDay) VALUES ('Roberto', 'Tamburello', '555.123.4567', 'RTamburello@contoso.com', 10, '1985-01-25 03:25:05'), ('Janice', 'Galvin', '555.123.4568', 'JGalvin@contoso.com.co', 5, '1990-05-14 11:30:00'), ('Shakti', 'Menon', '555.123.4570', 'SMenon@contoso.net', 50, '2004-02-29 14:20:10'), ('Zheng', 'Mu', '555.123.4569', 'ZMu@contoso.net', 40, '1990-03-01 06:00:00');Hizmet tablolarını içerecek şema oluşturma:
CREATE SCHEMA Service; GOMaskelenmiş sütunlarla hizmet tablosu oluşturma:
CREATE TABLE Service.Feedback ( MemberID INT IDENTITY (1, 1) NOT NULL, Feedback VARCHAR (100) MASKED WITH (FUNCTION = 'default()') NULL, Rating INT MASKED WITH (FUNCTION = 'default()'), Received_On DATETIME );Örnek veri ekleme:
INSERT INTO Service.Feedback (Feedback, Rating, Received_On) VALUES ('Good', 4, '2022-01-25 11:25:05'), ('Excellent', 5, '2021-12-22 08:10:07'), ('Average', 3, '2021-09-15 09:00:00');Veritabanında farklı kullanıcılar oluşturun:
CREATE USER ServiceAttendant WITHOUT LOGIN; GO CREATE USER ServiceLead WITHOUT LOGIN; GO CREATE USER ServiceManager WITHOUT LOGIN; GO CREATE USER ServiceHead WITHOUT LOGIN; GOVeritabanındaki kullanıcılara okuma izinleri verin:
ALTER ROLE db_datareader ADD MEMBER ServiceAttendant; ALTER ROLE db_datareader ADD MEMBER ServiceLead; ALTER ROLE db_datareader ADD MEMBER ServiceManager; ALTER ROLE db_datareader ADD MEMBER ServiceHead;Kullanıcılara farklı
UNMASKizinler verin:için sütun düzeyi
UNMASKizni verinServiceAttendant:GRANT UNMASK ON Data.Membership (FirstName) TO ServiceAttendant;UNMASKiçin tablo düzeyiServiceLeadiznini ver.GRANT UNMASK ON Data.Membership TO ServiceLead;Şema düzeyi
UNMASKizniniServiceManageriçin verin.GRANT UNMASK ON SCHEMA::Data TO ServiceManager; GRANT UNMASK ON SCHEMA::Service TO ServiceManager;Veritabanı düzeyinde
UNMASKizniniServiceHeadkullanıcısına ver.GRANT UNMASK TO ServiceHead;
Kullanıcı
ServiceAttendantbağlamındaki verileri sorgula:EXECUTE AS USER = 'ServiceAttendant'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;Kullanıcı
ServiceLeadbağlamındaki verileri sorgula:EXECUTE AS USER = 'ServiceLead'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;Kullanıcı
ServiceManagerbağlamındaki verileri sorgula:EXECUTE AS USER = 'ServiceManager'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;Kullanıcı
ServiceHeadbağlamındaki verileri sorgulamaEXECUTE AS USER = 'ServiceHead'; SELECT MemberID, FirstName, LastName, Phone, Email, BirthDay FROM Data.Membership; SELECT MemberID, Feedback, Rating FROM Service.Feedback; REVERT;İzinleri iptal
UNMASKetmek için aşağıdaki T-SQL deyimlerini kullanın:REVOKE UNMASK ON Data.Membership (FirstName) FROM ServiceAttendant; REVOKE UNMASK ON Data.Membership FROM ServiceLead; REVOKE UNMASK ON SCHEMA::Data FROM ServiceManager; REVOKE UNMASK ON SCHEMA::Service FROM ServiceManager; REVOKE UNMASK FROM ServiceHead;