Dalam Data Management (DMS), melakukan perubahan data tanpa pengaman berisiko tinggi—perintah DELETE di lingkungan produksi dapat menyebabkan kesalahan, dan perintah TRUNCATE yang salah tidak dapat dikembalikan. DMS mengatasi hal ini melalui aturan keamanan yang mengatur pernyataan SQL mana yang dapat dijalankan langsung di SQLConsole, mana yang memerlukan persetujuan tiket, dan mana yang diblokir sepenuhnya. Topik ini menjelaskan empat skenario umum dalam mode Security Collaboration agar Anda dapat mengonfigurasi kebijakan tata kelola yang tepat untuk setiap lingkungan.
Cara kerja
Setiap perubahan data di DMS mengikuti siklus hidup berikut:
| Tahap | Deskripsi |
|---|---|
| Write SQL | Masukkan pernyataan SQL di SQLConsole atau lampirkan file .sql, .txt, atau .zip dalam tiket. |
| Precheck | DMS secara otomatis memvalidasi SQL terhadap aturan keamanan Anda sebelum dieksekusi. |
| Approval | Jika aturan keamanan mengharuskan tiket, perubahan tersebut dikirim ke pihak yang ditunjuk sebagai approver (default: DBA). |
| Execute | Jalankan perubahan segera atau jadwalkan. Secara opsional, bungkus pernyataan data manipulation language (DML) dalam satu transaksi. |
| Backup and rollback | DMS dapat menghasilkan pernyataan backup untuk operasi UPDATE dan DELETE sehingga Anda dapat melakukan rollback jika diperlukan. |
Perilaku pada setiap tahap diatur oleh aturan keamanan—kebijakan yang dapat dikonfigurasi dan dilampirkan pada setiap instans database.
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
Akun administrator DMS atau izin untuk mengajukan tiket perubahan data
Instans database
poc_proddanpoc_devyang telah didaftarkan di DMS dalam mode Security CollaborationTabel
data_modifyyang telah dibuat di kedua database
Buat tabel `data_modify`
Dalam keempat contoh pada topik ini, fitur schema design DMS digunakan untuk membuat tabel data_modify. Anda juga dapat menjalankan pernyataan ini langsung di SQLConsole—pernyataan DDL di database development tidak memerlukan tiket untuk dieksekusi.
CREATE TABLE `data_modify` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
`name` varchar(256) NOT NULL COMMENT 'Name',
`phone` varchar(32) DEFAULT NULL COMMENT 'Phone number',
`sex` varchar(32) DEFAULT NULL COMMENT 'Gender',
`email` varchar(256) DEFAULT NULL COMMENT 'Email address',
`remarks` varchar(1024) DEFAULT NULL COMMENT 'Remarks',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Personal information';Sekumpulan aturan keamanan yang digunakan dalam keempat skenario:
| Instans database | Sekumpulan aturan keamanan |
|---|---|
poc_dev | Security Rules for POC Development Databases |
poc_prod | Security Rules for POC Production Databases |
Kirim tiket untuk perubahan data reguler
Skenario ini menyisipkan baris ke dalam tabel data_modify di poc_prod dengan mengajukan tiket perubahan data.
Masuk ke DMS console V5.0.
Arahkan kursor ke ikon
di pojok kiri atas dan pilih All Features > Database Development > Data Change > Normal Data Modify.Dalam mode normal, pilih Database Development > Data Change > Normal Data Modify di bilah navigasi atas.
Isi parameter tiket. Parameter utama:
Parameter Deskripsi SQL text Pernyataan SQL yang akan dieksekusi. Pisahkan beberapa pernyataan dengan titik koma ( ;).Attachment Unggah file .txt,.zip, atau.sql. Ukuran maksimum file: 15 MB.Klik Submit. DMS menjalankan precheck secara otomatis. Jika precheck gagal, perbarui SQL sesuai petunjuk dan ajukan ulang.
Setelah precheck berhasil, klik Submit for Approval, lalu klik OK pada prompt konfirmasi.
Tiket perubahan data disetujui oleh DBA secara default. Untuk mengubah template persetujuan default, lihat bagian Change the default approval template dalam topik SQL Correct.
Setelah tiket disetujui, klik Execute Change. Di kotak dialog Task Settings, konfigurasi parameter eksekusi dan klik Confirm Execution.
Jika Anda mengatur Execution Method menjadi After Audit Approved, Auto Execute saat langkah pengajuan, langkah ini dilewati secara otomatis. Setelah tugas yang ditangguhkan dilanjutkan, eksekusi berlanjut dari titik terakhir.
Parameter Deskripsi Execution strategy Running immediately (default): dieksekusi segera setelah tiket dikonfirmasi. Schedule: dieksekusi pada waktu yang ditentukan. Enable Submit as Single Transaction Default: off. On: jika ada pernyataan DML yang gagal, semua pernyataan DML dalam transaksi tersebut akan di-rollback (pernyataan DDL tidak dapat di-rollback). Off: setiap pernyataan dieksekusi secara independen; eksekusi berhenti saat terjadi kegagalan, tetapi pernyataan sebelumnya tidak di-rollback. Enable Backup Default: on. DMS menghasilkan pernyataan backup untuk pernyataan UPDATEdanDELETE. Lihat Backup support untuk detail spesifik berdasarkan jenis database.Opsi tambahan. Setelah eksekusi selesai, buka SQLConsole untuk
poc_proddan verifikasi hasilnya.
Dukungan backup
Backup hanya berlaku untuk pernyataan UPDATE dan DELETE. Pernyataan INSERT dan DDL tidak dibackup.
| Jenis database | Pernyataan backup yang dihasilkan | Catatan |
|---|---|---|
| MySQL, MariaDB | REPLACE INTO | Termasuk ApsaraDB RDS for MySQL, PolarDB for MySQL, PolarDB-X, dan self-managed MySQL |
| Semua database lain yang didukung | INSERT | — |
| MongoDB, Redis | Tidak didukung | — |
Izinkan pernyataan DML dijalankan langsung di database development
Secara default, aturan keamanan DMS mengharuskan semua pernyataan DML melalui tiket. Untuk database development, hal ini memperlambat iterasi. Konfigurasikan aturan keamanan agar developer dapat menjalankan pernyataan DML langsung di SQLConsole—tanpa harus mengajukan tiket setiap kali.
Langkah 1: Perbarui aturan keamanan untuk poc_dev
Masuk ke DMS console V5.0 sebagai administrator DMS.
Arahkan kursor ke ikon
di pojok kiri atas dan pilih All Features > Security and disaster recovery (DBS) > Security Rules.Dalam mode normal, pilih Security and disaster recovery (DBS) > Security Rules di bilah navigasi atas.
-
Arahkan kursor ke ikon
di pojok kiri atas, lalu pilih .CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih pada bilah navigasi atas.
-
Arahkan kursor ke ikon
di pojok kiri atas, lalu pilih .CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih pada bilah navigasi atas.
-
Arahkan kursor ke ikon
di pojok kiri atas, lalu pilih .CatatanJika Anda menggunakan Konsol DMS dalam mode normal, pilih pada bilah navigasi atas.
Di halaman Security Rules, temukan aturan database development POC dan klik Edit di kolom Actions.
Di panel navigasi kiri, klik SQL Correct. Atur Checkpoints ke SQL execution rules.
Aktifkan All DML can execute directly in SQLConsole dan nonaktifkan All DML must execute by ticket.
Langkah 2: Verifikasi perubahan aturan
Di pojok kiri atas Konsol DMS, cari instans
poc_dev.Di tab SQLConsole, jalankan pernyataan INSERT berikut:
INSERT INTO data_modify (name, phone, sex) VALUES ('dms_a', '19000001','Male'); INSERT INTO data_modify (name, phone, sex) VALUES ('dms_b', '19000002','Female'); INSERT INTO data_modify (name, phone, sex) VALUES ('dms_c', '19000003','Male');Di kotak dialog Execution Confirmation, klik Executed. Jika muncul status Executed di hasil, perubahan aturan berfungsi dengan benar.
Wajibkan persetujuan tiket untuk SQL berisiko tinggi di database produksi
Beberapa pernyataan SQL—seperti DELETE—mengandung risiko signifikan di lingkungan produksi. Konfigurasikan aturan keamanan untuk menandai DELETE sebagai operasi berisiko tinggi dan mengarahkannya melalui proses persetujuan khusus.
Langkah 1: Buat proses persetujuan
Masuk ke DMS consoleDMS console sebagai administrator DMS.
Arahkan kursor ke ikon
di pojok kiri atas dan pilih All Features > Security and disaster recovery (DBS) > Approval Processes.Dalam mode normal, pilih Security and disaster recovery (DBS) > Approval Processes di bilah navigasi atas.
Klik Create Approval Template dan konfigurasi node persetujuan. Tambahkan node secara berurutan—node 1 adalah approver pertama, node 2 adalah approver kedua, dan seterusnya.
Klik Submit.
Langkah 2: Konfigurasikan aturan identifikasi risiko
Arahkan kursor ke ikon
di pojok kiri atas dan pilih All Features > Security and disaster recovery (DBS) > Security Rules.Dalam mode normal, pilih Security and disaster recovery (DBS) > Security Rules di bilah navigasi atas.
Di halaman Security Rules, temukan aturan database produksi POC dan klik Edit di kolom Actions.
Klik SQL Correct di panel navigasi kiri. Atur Checkpoints ke Risk Identification Rules dan klik Create Rule.
Di kotak dialog Create Rule - SQL Correct, atur parameter berikut:
Parameter Nilai Rule name Production environments. The execution of DELETE statements is a high-risk operationRule DSL Lihat kode DSL di bawah if @fac.env_type in ['product','pre'] and @fac.sql_type in [ 'DELETE'] then @act.mark_risk 'high' 'High-risk SQL statements: DELETE in the production environments' endKlik Submit.
Temukan aturan Production environments. The execution of DELETE statements is a high-risk operation dan klik Enable di kolom Actions. Klik OK pada pesan konfirmasi. Aturan langsung berlaku—semua pernyataan
DELETEdiidentifikasi sebagai operasi berisiko tinggi.
Langkah 3: Hubungkan proses persetujuan ke aturan persetujuan risiko
Atur Checkpoints ke Risk Approval Rules. Temukan aturan High risk approval process dan klik Edit di kolom Actions.
Di kotak dialog Change Rule - SQL Correct, ganti ID template di bidang Rule DSL dengan ID template persetujuan yang Anda buat di Langkah 1. Klik Submit.
Temukan aturan High risk approval process dan klik Enable. Klik OK untuk mengonfirmasi.
Langkah 4: Verifikasi aturan
Di Konsol DMS, cari instans
poc_prod.Di tab SQLConsole, jalankan pernyataan berikut:
DELETE FROM data_modify WHERE id = 1;Jika area Execution History menampilkan pesan kegagalan karena aturan keamanan, aturan tersebut berfungsi. Klik Apply for Data Change untuk mengajukan tiket dan menjalani proses persetujuan.
Menjalankan pernyataan
DELETEdi database produksi merupakan operasi berisiko tinggi. Tiket harus disetujui oleh approver yang ditentukan dalam template persetujuan sebelum dapat dieksekusi.
Blokir pernyataan TRUNCATE di database produksi
TRUNCATE menghapus semua baris dari sebuah tabel dan tidak dapat dikembalikan. Untuk mencegah kehilangan data akibat kesalahan di lingkungan produksi, konfigurasikan aturan keamanan yang memblokir pernyataan TRUNCATE—baik di SQLConsole maupun melalui tiket.
Langkah 1: Ubah aturan keamanan untuk memblokir TRUNCATE
Masuk ke DMS consoleDMS console sebagai administrator DMS.
Arahkan kursor ke ikon
di pojok kiri atas dan pilih All Features > Security and disaster recovery (DBS) > Security Rules.Dalam mode normal, pilih Security and disaster recovery (DBS) > Security Rules di bilah navigasi atas.
Di halaman Security Rules, temukan aturan database produksi POC dan klik Edit di kolom Actions.
Di panel navigasi kiri, klik SQL Correct. Atur Checkpoints ke SQL execution rules.
Temukan aturan Allow TRUNCATE to be executed directly in the SQL console dan klik Edit di kolom Actions.
Ubah nama aturan menjadi
Forbid TRUNCATE statements. Ganti bahasa domain-spesifik (DSL) yang ada dengan yang berikut dan klik Submit:DSL ini memblokir pernyataan
TRUNCATEbaik di SQLConsole maupun melalui tiket. Untuk informasi lebih lanjut tentang sintaksis DSL, lihat DSL syntax for security rules.if @fac.sql_type in ['TRUNCATE'] then @act.forbid_execute endTemukan aturan TRUNCATE cannot be executed directly in the SQL console. It must be executed as a ticket. dan klik Enable di kolom Actions. Klik OK untuk mengonfirmasi.
Langkah 2: Verifikasi aturan di SQLConsole
Di Konsol DMS, cari instans
poc_prod.Di tab SQLConsole, jalankan pernyataan berikut:
TRUNCATE TABLE `data_modify`;Status Execution Failed ditampilkan. Aturan keamanan sedang memblokir pernyataan
TRUNCATE.
Langkah 3: Verifikasi aturan untuk pengajuan tiket
Ajukan tiket perubahan data dengan pernyataan SQL berikut (lihat Submit a ticket for a regular data change):
TRUNCATE TABLE `data_modify`;Setelah Anda mengajukan tiket, periksa hasil precheck. Jika precheck gagal, aturan tersebut juga memblokir pernyataan TRUNCATE melalui alur kerja tiket.
Langkah selanjutnya
DSL syntax for security rules — tulis aturan kustom untuk kebijakan tata kelola SQL Anda sendiri
Manage security rules — konfigurasi, aktifkan, dan nonaktifkan aturan di berbagai instans database
Schema design — buat dan kelola skema tabel tanpa mengajukan tiket DDL