Row-level access control di Data Management (DMS) membatasi baris data yang dapat dikueri oleh pengguna tertentu berdasarkan satu atau beberapa nilai dari bidang kontrol yang ditentukan. Fitur ini berguna dalam skenario di mana karyawan berbeda hanya boleh melihat data yang relevan dengan tanggung jawab mereka—misalnya, anggota tim penjualan yang hanya boleh mengakses catatan untuk wilayah atau akun mereka sendiri.
Kasus penggunaan
Regional data separation: Batasi karyawan agar hanya dapat mengkueri baris-baris di mana bidang region sesuai dengan wilayah yang ditugaskan kepada mereka.
Multi-table control: Terapkan nilai kontrol yang sama di beberapa tabel dalam satu database menggunakan satu control group.
Peran dan tanggung jawab
Row-level access control melibatkan dua peran dengan tanggung jawab berbeda:
| Role | Tanggung Jawab |
|---|---|
| Database administrator (DBA), administrator DMS, atau administrator keamanan | Mengonfigurasi row-level access control: membuat control group, menambahkan konfigurasi baris, dan menetapkan nilai kontrol |
| Semua pengguna (termasuk DBA dan administrator DMS) | Mengajukan permohonan izin baris untuk baris tertentu sebelum mengkueri data yang dikontrol |
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instansiasi basis data yang dikelola dalam mode Security Collaboration. Untuk detailnya, lihat Control modes
Peran sebagai database administrator (DBA), administrator DMS, atau administrator keamanan. Untuk memeriksa peran Anda, lihat View system roles
Database relasional: ApsaraDB RDS for MySQL, ApsaraDB RDS for PostgreSQL, atau PolarDB for MySQL
Hanya database fisik yang didukung.
Batasan
Satu tabel hanya dapat ditambahkan ke satu control group.
Hanya satu control field yang dapat ditentukan per tabel.
Setelah control group dihapus, semua konfigurasi row-level control terkait menjadi tidak aktif.
Mengonfigurasi row-level access control
Contoh berikut menggunakan database produksi bernama poc_prod.
Langkah 1: Membuat control group dan menambahkan konfigurasi baris
Masuk ke DMS console V5.0.
-
Arahkan pointer ke ikon
di pojok kiri atas, lalu pilih . CatatanJika Anda menggunakan DMS console dalam mode normal, pilih di bilah navigasi atas.
Buka Sensitive Data Assets:
Mode ikon: Arahkan pointer ke ikon
di pojok kiri atas, lalu pilih All Features > Security and disaster recovery (DBS) > Sensitive Data > Sensitive Data Assets.Mode normal: Di bilah navigasi atas, pilih Security and disaster recovery (DBS) > Sensitive Data > Sensitive Data Assets.
Di pojok kanan atas, klik Global Sensitive Data untuk membuka tab Row Control.
CatatanAtau, klik Sensitive Data List pada tab Enabled di bagian Instance List.
Pada tab Row Control, klik Create Control Group dan masukkan nama untuk control group tersebut.
Klik Add Row Configuration, lalu konfigurasikan hal berikut:
Dari daftar drop-down Database, pilih database. Masukkan kata kunci untuk mencari jika diperlukan.
Pilih tabel dan control field untuk menerapkan row-level access control.
Klik Add.
Langkah 2: Menambahkan nilai kontrol
Di sebelah kanan control group, klik Details.
Klik Add Row Value dan atur parameter berikut:
Parameter Deskripsi Append ? Yes: Nilai baru ditambahkan ke nilai yang sudah ada. No: Nilai baru menggantikan nilai yang sudah ada. Row Value Content Nilai-nilai yang akan dikontrol. Pisahkan beberapa nilai dengan koma (,). Klik Import. Pesan konfirmasi akan muncul di bagian atas halaman ketika nilai baris berhasil diimpor.
Mengajukan izin baris
Semua pengguna—termasuk administrator DMS dan DBA—harus mengajukan tiket izin dan mendapatkan persetujuan sebelum mengkueri baris yang dikontrol.
Masuk ke DMS console V5.0.
-
Arahkan pointer ke ikon
di pojok kiri atas, lalu pilih . CatatanJika Anda menggunakan DMS console dalam mode normal, pilih di bilah navigasi atas.
Buka Permission Tickets:
Mode ikon: Arahkan pointer ke ikon
di pojok kiri atas, lalu pilih All Features > Security and disaster recovery (DBS) > Permission Center > Permission Tickets.Mode normal: Di bilah navigasi atas, pilih Security and disaster recovery (DBS) > Permission Center > Permission Tickets.
Pada halaman Access applyTickets, pilih Access apply > Row Permission.
Pilih baris target dan klik Add. Baris tersebut akan muncul di bagian Selected Databases/Tables/Columns.
Di bagian Select Permission, pilih Query dan tentukan Duration serta Reason.
Klik Submit dan tunggu persetujuan. Setelah disetujui, kueri baris yang dikontrol di SQL Console. Untuk memeriksa status tiket Anda, buka bagian My Tickets pada tab Workbench.
Operasi tambahan
| Operasi | Langkah-langkah |
|---|---|
| Hapus control group | Pada tab Row Control, temukan control group tersebut dan hapus. Semua konfigurasi row-level control dalam grup tersebut menjadi tidak aktif. |
| Edit control group | Pada tab Row Control, ubah nama control group atau bidang kontrol yang telah dikonfigurasi. |
FAQ
Kueri saya di SQL Console gagal meskipun izin baris saya telah disetujui. Apa yang harus saya lakukan?
Lakukan langkah-langkah berikut untuk pemecahan masalah:
Pastikan Anda memiliki izin query pada database dan tabel tujuan. Untuk informasi lebih lanjut, lihat Apply for row permissions.
Gunakan pernyataan SQL dengan kondisi WHERE pada tab SQL Console untuk mengkueri baris data yang dikontrol.
Sebagai contoh, jika control field adalah buyer_name dan nilai yang telah disetujui adalah name1, name2, dan name3, serta Anda memiliki izin query pada tabel dms_test:
Untuk mengkueri satu nilai, gunakan
=atauIN:SELECT * FROM dms_test WHERE buyer_name = 'name1';Untuk mengkueri beberapa nilai, gunakan
IN:SELECT * FROM dms_test WHERE buyer_name IN ('name1', 'name2', 'name3');
Langkah selanjutnya
Configure row-level access control — opsi konfigurasi lanjutan