All Products
Search
Document Center

Data Management:Row-level access control

Last Updated:Mar 29, 2026

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:

RoleTanggung Jawab
Database administrator (DBA), administrator DMS, atau administrator keamananMengonfigurasi 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

Catatan

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

  1. Masuk ke DMS console V5.0.

  2. Arahkan pointer ke ikon 2023-01-28_15-57-17.png di pojok kiri atas, lalu pilih All Features > Security and disaster recovery (DBS) > Sensitive Data > Sensitive Data Assets.

    Catatan

    Jika Anda menggunakan DMS console dalam mode normal, pilih Security and disaster recovery (DBS) > Sensitive Data > Sensitive Data Assets di bilah navigasi atas.

  3. Buka Sensitive Data Assets:

    • Mode ikon: Arahkan pointer ke ikon 2023-01-28_15-57-17.png 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.

  4. Di pojok kanan atas, klik Global Sensitive Data untuk membuka tab Row Control.

    Catatan

    Atau, klik Sensitive Data List pada tab Enabled di bagian Instance List.

  5. Pada tab Row Control, klik Create Control Group dan masukkan nama untuk control group tersebut.

  6. Klik Add Row Configuration, lalu konfigurasikan hal berikut:

    1. Dari daftar drop-down Database, pilih database. Masukkan kata kunci untuk mencari jika diperlukan.

    2. Pilih tabel dan control field untuk menerapkan row-level access control.

    3. Klik Add.

Langkah 2: Menambahkan nilai kontrol

  1. Di sebelah kanan control group, klik Details.

  2. Klik Add Row Value dan atur parameter berikut:

    ParameterDeskripsi
    Append ?Yes: Nilai baru ditambahkan ke nilai yang sudah ada. No: Nilai baru menggantikan nilai yang sudah ada.
    Row Value ContentNilai-nilai yang akan dikontrol. Pisahkan beberapa nilai dengan koma (,).
  3. 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.

  1. Masuk ke DMS console V5.0.

  2. Arahkan pointer ke ikon 2023-01-28_15-57-17.png di pojok kiri atas, lalu pilih All Features > Security and disaster recovery (DBS) > Permission Center > Permission Tickets.

    Catatan

    Jika Anda menggunakan DMS console dalam mode normal, pilih Security and disaster recovery (DBS) > Permission Center > Permission Tickets di bilah navigasi atas.

  3. Buka Permission Tickets:

    • Mode ikon: Arahkan pointer ke ikon 2023-01-28_15-57-17.png 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.

  4. Pada halaman Access applyTickets, pilih Access apply > Row Permission.

  5. Pilih baris target dan klik Add. Baris tersebut akan muncul di bagian Selected Databases/Tables/Columns.

  6. Di bagian Select Permission, pilih Query dan tentukan Duration serta Reason.

  7. 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

OperasiLangkah-langkah
Hapus control groupPada tab Row Control, temukan control group tersebut dan hapus. Semua konfigurasi row-level control dalam grup tersebut menjadi tidak aktif.
Edit control groupPada 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:

  1. Pastikan Anda memiliki izin query pada database dan tabel tujuan. Untuk informasi lebih lanjut, lihat Apply for row permissions.

  2. 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 = atau IN:

    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