Masking data dinamis di pergudangan data Fabric
Berlaku untuk:✅ Titik akhir analitik SQL dan Gudang di Microsoft Fabric
Masking data dinamis membatasi paparan data sensitif dengan menutupinya kepada pengguna yang tidak memiliki hak istimewa. Ia dapat digunakan untuk menyederhanakan desain dan pengodean keamanan dalam aplikasi Anda.
Masking data dinamis membantu mencegah tampilan data sensitif yang tidak sah dengan memungkinkan administrator menentukan berapa banyak data sensitif yang akan diungkapkan, dengan efek minimal pada lapisan aplikasi. Masking data dinamis dapat dikonfigurasi pada bidang database yang ditunjuk untuk menyembunyikan data sensitif dalam kumpulan hasil kueri. Dengan masking data dinamis, data dalam database tidak diubah, sehingga dapat digunakan dengan aplikasi yang ada karena aturan masking diterapkan ke hasil kueri. Banyak aplikasi dapat menutupi data sensitif tanpa memodifikasi kueri yang ada.
- Kebijakan masking data pusat bertindak langsung pada bidang sensitif dalam database.
- Menunjuk pengguna atau peran istimewa yang memang memiliki akses ke data sensitif.
- Fitur masking data dinamis memiliki fungsi masking penuh dan masking parsial, dan masker acak untuk data numerik.
- Perintah Transact-SQL sederhana menentukan dan mengelola masker.
Tujuan masking data dinamis adalah untuk membatasi paparan data sensitif, mencegah pengguna yang seharusnya tidak memiliki akses ke data untuk melihatnya. Masking data dinamis tidak bertujuan untuk mencegah pengguna database terhubung langsung ke database dan menjalankan kueri lengkap yang mengekspos potongan data sensitif.
Masking data dinamis melengkapi fitur keamanan Fabric lainnya seperti keamanan tingkat kolom dan keamanan tingkat baris. Sangat disarankan untuk menggunakan fitur perlindungan data ini bersama-sama untuk melindungi data sensitif dalam database.
Menentukan masker data dinamis
Aturan masking dapat ditentukan pada kolom dalam tabel, untuk mengaburkan data di kolom tersebut. Ada empat jenis masker yang tersedia.
Fungsi | Deskripsi | Contoh |
---|---|---|
Default | Masking penuh sesuai dengan jenis data bidang yang ditunjuk. Untuk jenis data string, gunakan XXXX (atau kurang) jika ukuran bidang kurang dari 4 karakter (karakter, nchar, varchar, nvarchar, teks, ntext).Untuk jenis data numerik, gunakan nilai nol (bigint, bit, desimal, int, uang, numerik, smallint, smallmoney, tinyint, float, real). Untuk jenis data tanggal dan waktu, gunakan 1900-01-01 00:00:00.0000000 (tanggal, tanggalwaktu2, tanggalwaktu, datetimeoffset, smalldatetime, waktu).Untuk jenis data biner, gunakan satu byte nilai ASCII 0 (biner, varbinary, image). |
Contoh sintaks definisi kolom: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL Contoh sintaksis perubahan: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()') |
Metode masking yang mengekspos huruf pertama alamat email dan akhiran konstan ".com", dalam bentuk alamat email. aXXX@XXXX.com . |
Contoh sintaks definisi: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL Contoh sintaksis perubahan: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()') |
|
Acak | Fungsi masking acak untuk digunakan pada jenis numerik apa pun untuk menutupi nilai asli dengan nilai acak dalam rentang tertentu. | Contoh sintaks definisi: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])') Contoh sintaksis perubahan: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)') |
String Kustom | Metode masking yang mengekspos huruf pertama dan terakhir dan menambahkan string padding kustom di tengah. prefix,[padding],suffix Jika nilai asli terlalu pendek untuk menyelesaikan seluruh masker, bagian dari awalan atau akhiran tidak terekspos. |
Contoh sintaks definisi: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL Contoh sintaksis perubahan: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') Ini mengubah nomor telepon seperti 555.123.1234 menjadi 5XXXXXXX . Contoh tambahan: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)') Ini mengubah nomor telepon seperti 555.123.1234 menjadi 555.1XXXXXXX . |
Untuk contoh selengkapnya, lihat Cara menerapkan masking data dinamis di Fabric Data Warehouse.
Izin
Pengguna tanpa hak Administrator, Anggota, atau Kontributor di ruang kerja, dan tanpa izin yang ditinggikan di Gudang, akan melihat data yang ditutupi.
Anda tidak memerlukan izin khusus untuk membuat tabel dengan masker data dinamis, hanya izin standar CREATE TABLE
dan ALTER
pada skema.
Menambahkan, mengganti, atau menghapus masker kolom, memerlukan ALTER ANY MASK
izin dan ALTER
izin pada tabel. Ini tepat untuk diberikan ALTER ANY MASK
kepada petugas keamanan.
Pengguna dengan izin SELECT
pada tabel dapat menampilkan data tabel. Kolom yang didefinisikan sebagai ditutupi akan menampilkan data bertopeng. UNMASK
Berikan izin kepada pengguna untuk memungkinkan mereka mengambil data yang tidak dimasak dari kolom yang maskingnya ditentukan.
Izin CONTROL
pada database menyertakan ALTER ANY MASK
izin dan UNMASK
yang memungkinkan pengguna untuk melihat data yang tidak dimasak. Pengguna atau peran administratif seperti Admin, Anggota, atau Kontributor memiliki izin CONTROL pada database berdasarkan desain dan dapat melihat data yang tidak dimasak secara default. Izin yang ditingkatkan pada Gudang menyertakan CONTROL
izin.
Pertimbangan keamanan: melewati masking menggunakan teknik inferensi atau brute-force
Masking data dinamis dirancang untuk menyederhanakan pengembangan aplikasi dengan membatasi paparan data dalam sekumpulan kueri yang telah ditentukan sebelumnya yang digunakan oleh aplikasi. Meskipun Masking Data Dinamis juga dapat berguna untuk mencegah paparan data sensitif yang tidak disengaja saat mengakses data secara langsung, penting untuk dicatat bahwa pengguna yang tidak memiliki hak istimewa dengan izin kueri dapat menerapkan teknik untuk mendapatkan akses ke data aktual.
Sebagai contoh, pertimbangkan pengguna yang memiliki hak istimewa yang memadai untuk menjalankan kueri di Gudang, dan mencoba 'menebak' data yang mendasarinya dan pada akhirnya menyimpulkan nilai aktual. Asumsikan bahwa kita memiliki masker yang ditentukan pada [Employee].[Salary]
kolom, dan pengguna ini terhubung langsung ke database dan mulai menebak nilai, akhirnya menyimpulkan [Salary]
nilai dalam Employees
tabel:
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
Menghasilkan:
ID | Nama | Gaji |
---|---|---|
62543 | Jane Doe | 0 |
91245 | John Smith | 0 |
Ini menunjukkan bahwa masking data dinamis tidak boleh digunakan sendiri untuk sepenuhnya mengamankan data sensitif dari pengguna dengan akses kueri ke titik akhir analitik Gudang atau SQL. Ini sesuai untuk mencegah paparan data sensitif, tetapi tidak melindungi dari niat jahat untuk menyimpulkan data yang mendasar.
Penting untuk mengelola keamanan tingkat objek dengan benar dengan izin terperinci SQL, dan untuk selalu mengikuti prinsip izin minimal yang diperlukan.
Konten terkait
- Peran ruang kerja dalam pergudangan data Fabric
- Keamanan tingkat kolom di pergudangan data Fabric
- Keamanan tingkat baris di pergudangan data Fabric
- Keamanan untuk pergudangan data di Microsoft Fabric