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 2016 (13.x) ve sonraki sürümleri
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te Azure Synapse Analytics
SQL veritabanı
Dinamik veri maskeleme (DDM), hassas verilerin kullanıma açık olmasını kısıtlayarak bunları ayrıcalıksız kullanıcılara maskeler. Uygulamanızda güvenliğin tasarımını ve kodlamasını büyük ölçüde basitleştirmek için kullanılabilir.
Bu içerik genellikle ve SQL Server'a özgü dinamik veri maskeleme kavramları için geçerlidir. Diğer platformlara özgü içerikler kullanılabilir:
- Azure SQL Veritabanı, Azure SQL Yönetilen Örneği ve Azure Synapse Analytics'te dinamik veri maskeleme ile ilgili bilgi için bkz. SQL Veritabanı Dinamik Veri Maskeleme ile çalışmaya başlama.
- Microsoft Fabric'te dinamik veri maskeleme için bkz. Fabric veri ambarında dinamik veri maskeleme.
Dinamik veri maskelemesine genel bakış
Dinamik veri maskeleme, müşterilerin uygulama katmanı üzerinde en az etkiyle ne kadar hassas veri ortaya çıkaracağını belirtmesine olanak tanıyarak hassas verilere yetkisiz erişimi önlemeye yardımcı olur. DDM, sorgu sonuç kümelerindeki hassas verileri gizlemek için belirlenen veritabanı alanlarında yapılandırılabilir. DDM ile veritabanındaki veriler değiştirilmez. Sorgu sonuçlarında maskeleme kuralları uygulandığından DDM'nin mevcut uygulamalarla kullanımı kolaydır. 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.
- DDM 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, diğer SQL Server güvenlik özelliklerine (denetim, şifreleme, satır düzeyi güvenlik vb.) tamamlayıcı niteliktedir ve veritabanındaki hassas verileri daha iyi korumak için bu özelliklerin onlarla birlikte kullanılması kesinlikle önerilir.
Dinamik veri maskeleme SQL Server 2016 (13.x) ve Azure SQL Veritabanı'nda kullanılabilir ve Transact-SQL komutları kullanılarak yapılandırılır. Azure portalını kullanarak dinamik veri maskelediğini yapılandırma hakkında daha fazla bilgi için bkz. SQL Veritabanı Dinamik Veri Maskeleme (Azure portalı) kullanmaya başlama
Not
Microsoft Entra ID daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Dinamik veri maskesi tanımlama
Maskeleme kuralı, tablodaki bir sütundaki verileri karartmak için tanımlanabilir. Beş maske türü mevcuttur.
Fonksiyon | Açıklama | Ö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 XXXX (veya daha az) kullanın (karakter, nchar, varchar, nvarchar, metin, ntext).Sayısal veri türleri için sıfır değeri kullanın (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real). Tarih ve saat veri türleri için 1900-01-01 00:00:00.0000000 (tarih, datetime2, datetime, datetimeoffset, smalldatetime, saat).İkili veri türleri için ASCII değeri 0'ın tek bir baytını kullanın (ikili, varbinary, görüntü). |
Ö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()') |
Rastgele | 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 gösterip araya ö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, 555.123.1234 gibi bir telefon numarasını 5XXXXXXX dönüştürür.Ek örnek: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)') Bu, 555.123.1234 gibi bir telefon numarasını 555.1XXXXXXX dönüştürür. |
Tarih ve saat |
Şunlar için geçerlidir: SQL Server 2022 (16.x) datetime, datetime2, date, saat, datetimeoffset, smalldatetimeile tanımlanan sütun için maskeleme yöntemi. year => datetime("Y") , month=> datetime("M") , day=>datetime("D") , hour=>datetime("h") , minute=>datetime("m") veya günün seconds=>datetime("s") kısmını maskelemeye yardımcı olur. |
tarih saati değerinin yılını nasıl maskeleyebileceğinizi gösteren bir örnek:ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("Y")') datetime değerinin ayını maskeleme örneği: ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("M")') tarih saat değerinin dakikasını maskelemeyi gösteren örnek: ALTER COLUMN BirthDay ADD MASKED WITH (FUNCTION = 'datetime("m")') |
İzinler
Bir tabloda SELECT izni olan kullanıcılar tablo verilerini görüntüleyebilir. Maskelenmiş olarak tanımlanan sütunlar maskelenmiş verileri görüntüler. Kullanıcıya maskelemenin tanımlandığı sütunlardan maskelenmemiş verileri almasına izin vermek için UNMASK izni verin.
Yönetici kullanıcılar ve roller, maskesiz verileri her zaman CONTROL izni aracılığıyla görüntüleyebilir, bu izin hem ALTER ANY MASK hem de UNMASK iznini içerir. Yönetim kullanıcılarının veya sysadmin veya db_owner gibi rollerin veritabanında tasarım gereği CONTROL izinleri vardır ve maskelenmemiş verileri görüntüleyebilir.
Dinamik veri maskesine sahip bir tablo oluşturmak için herhangi bir özel izne ihtiyacınız yoktur; sadece şema izinlerinde standart CREATE TABLE ve ALTER gereklidir.
Sütun maskesini eklemek, değiştirmek veya kaldırmak, HERHANGI BIR MASKE DEĞIŞTIRME izni ve tabloda ALTER izni gerektirir. Bir güvenlik görevlisine ALTER ANY MASK izni vermek uygundur.
Not
UNMASK izni meta veri görünürlüğünü etkilemez: UNMASK'ye tek başına izin vermek meta verileri açıklamaz. UNMASK'ın herhangi bir etkiye sahip olması için her zaman bir SELECT iznine sahip olması gerekir. Örnek: Veritabanı kapsamında UNMASK verme ve tek bir Tablo üzerinde SELECT verme, kullanıcının yalnızca seçebileceği tek tablonun meta verilerini görebileceği sonucuna sahip olur, başkalarını göremez. Ayrıca bkz. Meta Veri Görünürlük Yapılandırması.
En iyi yöntemler ve yaygın kullanım örnekleri
Bir sütunda maske oluşturmak, bu sütunda yapılan güncelleştirmeleri engellemez. Bu nedenle, kullanıcılar maskelenmiş sütunu sorgularken maskelenmiş veriler alsa da, aynı kullanıcılar yazma izinleri varsa verileri güncelleştirebilir. Güncelleştirme izinlerini sınırlamak için uygun bir erişim denetimi ilkesi kullanılmaya devam edilmelidir.
Maskelenmiş bir sütundaki verileri başka bir tabloya kopyalamak için
veya kullanılması hedef tablodaki maskelenmiş verilere neden olur (unmask ayrıcalıkları olmayan bir kullanıcı tarafından dışarı aktarıldığında). SQL Server İçeri ve Dışarı Aktarma çalıştırılırken Dinamik Veri Maskeleme uygulanır. Maskelenmiş sütunlar içeren bir veritabanı, maskelenmiş veri içeren bir dışarı aktarılan veri dosyasıyla sonuçlanır (unmask ayrıcalıkları
olmayan bir kullanıcı tarafından dışarı aktarılmış olduğu varsayılır) ve içeri aktarılan veritabanı statik olarak maskelenmiş veriler içerir.
Maskelenmiş sütunlar için sorgu
Maskeleme işlevi uygulanmış tablo sütunlarını sorgulamak için sys.masked_columns
görünümünü kullanın. Bu görünüm sys.columns
görünümünden devralır.
sys.columns
görünümündeki tüm sütunların yanı sıra is_masked
ve masking_function
sütunlarını döndürür; sütunun maskelenip maskelenmediğini ve varsa hangi maskeleme işlevinin tanımlandığını gösterir. Bu görünümde yalnızca maskeleme işlevinin uygulandığı sütunlar gösterilir.
SELECT c.name, tbl.name as table_name, c.is_masked, c.masking_function
FROM sys.masked_columns AS c
JOIN sys.tables AS tbl
ON c.[object_id] = tbl.[object_id]
WHERE is_masked = 1;
Sınırlamalar ve kısıtlamalar
VERITABANı düzeyinde CONTROL SERVER veya CONTROL kullanan kullanıcılar maskelenmiş verileri özgün biçiminde görüntüleyebilir. Buna yönetici kullanıcılar veya sysadmin, db_owner gibi roller dahildir.
Maskeleme kuralı aşağıdaki sütun türleri için tanımlanamaz:
Şifrelenmiş sütunlar (Always Encrypted)
FILESTREAM
COLUMN_SET veya bir sütun kümesinin parçası olan seyrek sütun.
Maske hesaplanan bir sütunda yapılandırılamaz, ancak hesaplanan sütun MASKE içeren bir sütuna bağlıysa hesaplanan sütun maskelenmiş verileri döndürür.
Veri maskeleme özelliğine sahip bir sütun, FULLTEXT dizini için anahtar olamaz.
PolyBase dış tabloiçinde bir sütun.
UNMASK izni olmayan kullanıcılar için, kullanım dışı bırakılan READTEXT , UPDATETEXTve WRITETEXT deyimleri, Dinamik Veri Maskeleme için yapılandırılmış bir sütunda düzgün çalışmaz.
Dinamik veri maskesi ekleme, temel alınan tabloda şema değişikliği olarak uygulanır ve bu nedenle bağımlılıkları olan bir sütunda (örneğin, hesaplanan sütun tarafından başvuruda bulunılan sütun) gerçekleştirilemez. Bağımlılık içeren sütunlara dinamik veri maskesi eklemeye çalışmak, ALTER TABLE ALTER COLUMN _columnname_ failed because one or more objects access this column
bir hataya neden olur. Bu kısıtlamaya geçici bir çözüm bulmak için önce bağımlılığı kaldırabilir, ardından dinamik veri maskesini ekleyebilir ve sonra bağımlılığı yeniden oluşturabilirsiniz. Örneğin, bağımlılık bu sütuna bağımlı bir dizinden kaynaklanıyorsa, dizini bırakabilir, ardından maskeyi ekleyebilir ve sonra bağımlı dizini yeniden oluşturabilirsiniz.
Veri maskeleme işlevinin tanımlandığı bir sütuna başvuran bir ifadeyi her yansıtışınızda, ifade de maskelenmiş durumdadır. Başvurulan sütunu maskelemede kullanılan işlevden (varsayılan, e-posta, rastgele, özel dize) bağımsız olarak, sonuçta elde edilen ifade her zaman varsayılan işlevle maskelenir.
İki farklı Azure SQL veritabanını veya farklı SQL Server Örneklerinde barındırılan veritabanlarını kapsayan ve MASKED sütunlarında herhangi bir karşılaştırma veya birleştirme işlemi içeren çapraz veritabanı sorguları doğru sonuçlar sağlamaz. Uzak sunucudan döndürülen sonuçlar zaten MASKED biçimindedir ve yerel olarak herhangi bir karşılaştırma veya birleştirme işlemi için uygun değildir.
Not
Temel tabloya dizinli bir görünümde başvurulduğunda dinamik veri maskeleme desteklenmez.
Güvenlik Notu: Çıkarım veya kaba kuvvet 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, üretim veritabanına doğrudan erişirken hassas verilerin yanlışlıkla açığa çıkmasını önlemek için de yararlı olabilir ancak geçici 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. Bu tür geçici erişim vermeniz gerekiyorsa, tüm veritabanı etkinliklerini izlemek ve bu senaryoyı azaltmak için Denetim kullanılmalıdır.
Örnek olarak, veritabanında anlık sorgular çalıştırmak için yeterli ayrıcalıklara sahip bir veritabanı sorumlusu düşünün ve temel veriyi 'tahmin etmeye' ve sonuçta gerçek değerleri çıkarsamaya çalışın.
[Employee].[Salary]
sütununda 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 [Salary]
tablosundaki Employees
değerini çıkardığını varsayalım:
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
Kimlik Ad veya İsim Maaş 62543 Jane Doe 0 91245 John Smith 0
Bu, dinamik veri maskelemenin veritabanında geçici sorgular çalıştıran kullanıcılardan hassas verilerin tam güvenliğini sağlamak için tek başına kullanılmaması gerektiğini gösterir. Yanlışlıkla 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.
Veritabanındaki izinleri düzgün bir şekilde yönetmek ve her zaman gerekli en düşük izin ilkesini izlemek önemlidir. Ayrıca, veritabanında gerçekleşen tüm etkinlikleri izlemek için Denetimin etkinleştirildiğini unutmayın.
SQL Server 2022'de sunulan ayrıntılı izinler
SQL Server 2022'den (16.x) başlayarak, hassas verilere yetkisiz erişimi engelleyebilir ve veritabanının farklı düzeylerindeki yetkisiz bir kullanıcıya maskeleyerek denetimi elde edebilirsiniz. UnMASK iznini veritabanı düzeyinde, şema düzeyinde, tablo düzeyinde veya sütun düzeyinde bir kullanıcıya, veritabanı rolüne, Microsoft Entra kimliğine veya Microsoft Entra grubuna verebilir veya iptal edebilirsiniz. Bu geliştirme, veritabanında depolanan verilere yetkisiz erişimi denetlemek ve sınırlamak ve veri güvenliği yönetimini geliştirmek için daha ayrıntılı bir yol sağlar.
Örnekler
Dinamik veri maskesi oluşturma
Aşağıdaki örnek, üç farklı tür dinamik veri maskesi içeren bir tablo oluşturur. Örnek tabloyu doldurur ve sonucu göstermeyi seçer.
-- schema to contain user tables
CREATE SCHEMA Data;
GO
-- table with masked columns
CREATE TABLE Data.Membership (
MemberID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY CLUSTERED,
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
);
-- inserting sample data
INSERT INTO Data.Membership (FirstName, LastName, Phone, Email, DiscountCode)
VALUES
('Roberto', 'Tamburello', '555.123.4567', 'RTamburello@contoso.com', 10),
('Janice', 'Galvin', '555.123.4568', 'JGalvin@contoso.com.co', 5),
('Shakti', 'Menon', '555.123.4570', 'SMenon@contoso.net', 50),
('Zheng', 'Mu', '555.123.4569', 'ZMu@contoso.net', 40);
GO
Yeni bir kullanıcı oluşturulur ve tablonun bulunduğu şemada SELECT izni verilir.
MaskingTestUser
maskelenmiş verileri görüntülerken yürütülen sorgular.
CREATE USER MaskingTestUser WITHOUT LOGIN;
GRANT SELECT ON SCHEMA::Data TO MaskingTestUser;
-- impersonate for testing:
EXECUTE AS USER = 'MaskingTestUser';
SELECT * FROM Data.Membership;
REVERT;
Sonuç, verilerin şu kaynaktan değiştirilmesiyle maskeleri gösterir:
1 Roberto Tamburello 555.123.4567 RTamburello@contoso.com 10
İçine:
1 Rxxxxxo Tamburello xxxx RXXX@XXXX.com 91
Içindeki sayı DiscountCode
her sorgu sonucu için rastgeledir.
Mevcut bir sütuna maske ekleme veya düzenleme
ALTER TABLE
deyimini kullanarak tablodaki mevcut bir sütuna maske ekleyin veya bu sütundaki maskeyi düzenleyin.
Aşağıdaki örnek, LastName
sütununa bir maskeleme işlevi ekler:
ALTER TABLE Data.Membership
ALTER COLUMN LastName ADD MASKED WITH (FUNCTION = 'partial(2,"xxxx",0)');
Aşağıdaki örnek, LastName
sütunundaki bir maskeleme işlevini değiştirir:
ALTER TABLE Data.Membership
ALTER COLUMN LastName VARCHAR(100) MASKED WITH (FUNCTION = 'default()');
Maskelenmemiş verileri görüntüleme izinleri verme
UNMASK izni verilmesi, MaskingTestUser
'nin verileri maskesiz görmesini sağlar.
GRANT UNMASK TO MaskingTestUser;
EXECUTE AS USER = 'MaskingTestUser';
SELECT * FROM Data.Membership;
REVERT;
-- Removing the UNMASK permission
REVOKE UNMASK TO MaskingTestUser;
Dinamik bir veri maskesi bırak
Aşağıdaki açıklama, önceki örnekte oluşturulan LastName
sütunundan maskeyi kaldırır.
ALTER TABLE Data.Membership
ALTER COLUMN LastName DROP MASKED;
Ayrıntılı izin örnekleri
Kullanıcı tablolarını içerecek şema oluşturma:
CREATE SCHEMA Data; GO
Maskelenmiş sütunlarla tablo oluşturma:
CREATE TABLE Data.Membership ( MemberID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY CLUSTERED, 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; GO
Maskelenmiş sütunlarla hizmet tablosu oluşturma:
CREATE TABLE Service.Feedback ( MemberID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY CLUSTERED, 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; GO
Veritabanı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ı UNMASK izinleri verin:
--Grant column level UNMASK permission to ServiceAttendant GRANT UNMASK ON Data.Membership(FirstName) TO ServiceAttendant; -- Grant table level UNMASK permission to ServiceLead GRANT UNMASK ON Data.Membership TO ServiceLead; -- Grant schema level UNMASK permission to ServiceManager GRANT UNMASK ON SCHEMA::Data TO ServiceManager; GRANT UNMASK ON SCHEMA::Service TO ServiceManager; --Grant database level UNMASK permission to ServiceHead; GRANT UNMASK TO ServiceHead;
Kullanıcı
ServiceAttendant
bağ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ı
ServiceLead
bağ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ı
ServiceManager
bağ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ı
ServiceHead
bağ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;
UNMASK izinlerini iptal etmek 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;
İlgili içerik
- TABLO OLUŞTUR (Transact-SQL)
- ALTER TABLE (Transact-SQL)
- column_definition (Transact-SQL)
- sys.masked_columns (Transact-SQL)
- SQL Veritabanı Dinamik Veri Maskeleme (Azure portalı) ile çalışmaya başlama
- dinamik veri maskeleme Fabric veri ambarında