Menerapkan Masking Data Dinamis
Masking Data Dinamis bekerja dengan mengaburkan data untuk membatasi paparannya. Pengguna yang tidak perlu melihat data sensitif dapat melihat kolom yang berisi data, tetapi bukan data aktual itu sendiri. Masking Data Dinamis berfungsi di lapisan presentasi, dan data yang tidak tertutup selalu terlihat oleh pengguna berhak istimewa tinggi.
Masking Data Dinamis memiliki kelebihan yaitu tidak memerlukan banyak modifikasi pada aplikasi atau database. Anda dapat mengonfigurasinya melalui portal Microsoft Azure, atau menggunakan T-SQL sebagai berikut.
Dalam contoh, kolom PhoneNumber dan EmailAddress disembunyikan dari pengguna DDMDemo yang hanya memiliki SELECT izin pada tabel. Pengguna diizinkan untuk melihat empat digit terakhir nomor telepon karena diburamkan menggunakan fungsi parsial yang menggantikan semua kecuali empat digit terakhir dalam kolom tersebut. Masking ini dianggap sebagai fungsi kustom. Selain T-SQL, jika Anda menggunakan Azure SQL Database, Anda dapat membuat aturan masking dinamis di portal Microsoft Azure:
Anda dapat mencapai layar untuk menambahkan aturan masking dengan menavigasi ke database Anda di portal Microsoft Azure dan memilih Masking Data Dinamis di bagian Keamanan dari bilah utama untuk database Anda.
Masking Data Dinamis mendukung pola masking berikut yang dapat digunakan:
| Fungsi masking | Definisi | Contoh T-SQL |
|---|---|---|
| Default | Menyamarkan data dalam kolom tanpa memperlihatkan bagian mana pun dari nilai kepada pengguna. Pengguna akan melihat XXXX untuk nilai string, 0 untuk angka, dan 01.01.1900 untuk nilai tanggal. | ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'default()') |
| Kartu kredit | Menyamarkan semua kecuali empat karakter terakhir, memungkinkan pengguna melihat empat digit terakhir. Masking ini dapat berguna untuk agen layanan pelanggan yang perlu melihat empat digit terakhir dari nomor kartu kredit tetapi yang tidak perlu melihat seluruh nomor. Data ditampilkan dalam format biasa dari nomor kartu kredit XXXX-XXXX-XXXX-1234. | ALTER TABLE [Customer] ALTER COLUMN Address ADD MASKED WITH (FUNCTION = 'partial(0,"XXXX-XXXX-XXXX-",4)') |
| Hanya huruf pertama dan akhiran domain berikutnya yang tidak ditutupi; misalnya, "aXXX@XXXXXXX.com" | ALTER TABLE [Customer] ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()') |
|
| Angka | Format masking ini harus digunakan pada kolom numerik. Hal ini menunjukkan nomor acak sebagai nilai yang ditutupi daripada nilai aktual. Dengan setiap kueri, nomor yang berbeda ditampilkan. | ALTER TABLE [Customer] ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)') |
| String kustom | Opsi ini memungkinkan teks untuk ditutupi dengan nilai apa pun, dan untuk menampilkan jumlah karakter kustom di kedua ujung nilai yang ditutupi. Jika panjang nilai yang ditutupi sama dengan atau kurang dari jumlah karakter yang ditentukan oleh masker yang akan ditampilkan, maka hanya karakter yang ditutupi yang ditampilkan. | ALTER TABLE [Customer] ALTER COLUMN [PhoneNumber] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') |
Untuk memungkinkan pengguna mengambil data yang tidak disamarkan dari kolom tempat masking ditentukan, Anda harus memberikan izin UNMASK secara eksplisit.
Catatan
Dimungkinkan untuk mengidentifikasi data yang ditutupi menggunakan inferensi berdasarkan hasilnya. Jika Anda menggunakan masking data, Anda juga harus membatasi kemampuan pengguna untuk menjalankan kueri yang tidak diencana.
Untuk alasan itu, sangat disarankan untuk menggunakan masking data dinamis dengan fitur keamanan lainnya, seperti audit, enkripsi, keamanan tingkat baris untuk melindungi data sensitif dengan lebih baik.
Gunakan huruf besar
Masking data adalah fitur sederhana dan ringan, dan ideal untuk banyak skenario, termasuk:
Menyamarkan data dari pengguna aplikasi yang tidak memiliki akses langsung ke database.
Membatasi informasi pribadi untuk sekelompok pengguna.
Memberikan data yang disamarkan ke vendor eksternal, tempat Anda perlu melindungi informasi sensitif sambil tetap menjaga hubungan antar item dalam data.
Mengekspor salinan database produksi Anda ke lingkungan yang lebih rendah untuk tujuan pengembangan dengan pengguna yang tidak memiliki izin
UNMASK. Ekspor data akan dalam format tersamarkan.
Mengimpor dan mengekspor data
Menyalin data dari kolom yang disamarkan ke tabel lain menggunakan SELECT INTO atau INSERT INTO menghasilkan data yang disamarkan di tabel target.
Ketika pengguna tanpa hak istimewa UNMASK menjalankan Impor dan Ekspor SQL Server, file data yang diekspor berisi data yang disembunyikan, dan database yang diimpor akan berisi data yang ditutupi secara tidak aktif.
Untuk mempelajari selengkapnya tentang cara kerja Masking Data Dinamis, lihat Masking Data Dinamis.