SQL Correct memungkinkan Anda menentukan aturan keamanan yang mengontrol pernyataan SQL mana yang dapat diajukan dan dieksekusi untuk perubahan data. Aturan tersebut ditulis dalam bahasa domain-spesifik (DSL) dan dikelompokkan ke dalam checkpoint—masing-masing checkpoint mengatur tahap tertentu dalam alur kerja perubahan data.
Prasyarat
Sebelum memulai, pastikan Anda memiliki salah satu peran berikut:
DMS administrator
Database administrator (DBA)
Security administrator
Cara kerja
Saat tiket perubahan data diajukan, DMS mengevaluasinya berdasarkan aturan keamanan yang dikonfigurasi di tab SQL Correct. Anda dapat menentukan tingkat risiko untuk perubahan data sesuai kebutuhan bisnis, lalu menetapkan proses persetujuan berbeda untuk tiket dengan tingkat risiko berbeda—mulai dari proses persetujuan ketat yang mengontrol eksekusi semua pernyataan SQL hingga proses longgar yang memungkinkan eksekusi tanpa persetujuan.
Resolusi konflik
Jika dua aturan yang saling bertentangan sama-sama diaktifkan, aturan yang lebih ketat akan berlaku. Misalnya, jika “Semua DML dapat dieksekusi langsung di SQL Console” dan “Semua DML harus dieksekusi melalui tiket” sama-sama diaktifkan, maka aturan kedua yang berlaku.
Checkpoint
Basic Configuration Item
Checkpoint ini menyediakan lima aturan default yang berlaku sebagai pengaturan default sistem secara keseluruhan.
| Rule | Description |
|---|---|
| Data change default approval Template | Templat persetujuan default untuk tiket perubahan data. ID templat default: 853; pemberi persetujuan default: DBA dari database yang terlibat. |
| Data Change risk level list | Menentukan tingkat risiko yang tersedia untuk digunakan oleh Risk Identification Rules dan Risk Approval Rules. Tingkat default: LOW (risiko rendah), MIDDLE (risiko menengah), HIGH (risiko tinggi), HIGHEST (risiko sangat tinggi). |
| Whether data import supports selecting speed mode | Menentukan apakah data dapat diimpor dalam mode kecepatan. Untuk detailnya, lihat Import data. |
| Skip Validation on Affected Rows for Regular Data Change | Jika diaktifkan, pemeriksaan awal melewati verifikasi jumlah baris untuk tiket perubahan data. |
| The Normal Data Modify ticket cannot be submitted if the specified number of affected rows is inconsistent with the result of the row count verification. | Jika diaktifkan, tiket tidak dapat diajukan jika jumlah baris yang terpengaruh yang ditentukan berbeda dari hasil pemeriksaan awal. |
SQL execution rules
SQL execution rules mengontrol pernyataan SQL mana yang dapat dijalankan langsung di SQL Console dan mana yang memerlukan tiket.
Contoh: Izinkan UPDATE, DELETE, dan INSERT dijalankan langsung hanya di lingkungan non-produksi:
if
@fac.env_type not in ['product']
and
@fac.sql_type in ['UPDATE','DELETE','INSERT']
then
@act.allow_submit
endRisk Identification Rules
Risk Identification Rules mengklasifikasikan setiap perubahan data ke dalam tingkat risiko tertentu. Jika beberapa aturan sesuai dengan perubahan yang sama, tingkat risiko tertinggi yang diterapkan.
Contoh: Tandai perubahan data di lingkungan non-produksi dan non-pra-rilis sebagai risiko rendah:
if
@fac.env_type not in ['product','pre']
then
@act.mark_risk 'low' 'Low risk level: offline environment'
endRisk Approval Rules
Risk Approval Rules memetakan tingkat risiko ke proses persetujuan. Jika suatu perubahan data tidak sesuai dengan Risk Identification Rule mana pun, DMS menggunakan templat persetujuan yang ditentukan dalam aturan Data change default approval Template di bawah Basic Configuration Item.
Contoh perilaku default: Lingkungan offline (diidentifikasi sebagai risiko rendah) tidak memerlukan persetujuan.
Batch Data import rules
Aturan ini hanya berlaku untuk tiket impor data dan dievaluasi secara terpisah dari alur kerja perubahan data.
Contoh aturan: Izinkan impor massal pernyataan INSERT.
Faktor dan aksi
Aturan ditulis menggunakan faktor (@fac.*) dan aksi (@act.*). Faktor merepresentasikan variabel konteks—seperti tipe lingkungan, tipe SQL, atau jumlah baris yang terpengaruh. Aksi menentukan apa yang terjadi ketika kondisi aturan terpenuhi.
Faktor
Tabel 1. Faktor yang tersedia di tab SQL Correct
| Factor | Type | Description |
|---|---|---|
@fac.env_type | String | Tipe lingkungan database, seperti DEV atau PRODUCT. Lihat Change the environment type of an instance. |
@fac.sql_type | String | Subkategori pernyataan SQL, seperti UPDATE atau INSERT. Lihat daftar lengkap subkategori di SQL Console for relational databases. |
@fac.detail_type | String | Tipe tiket perubahan data: COMMON (Normal Data Modify), CHUNK_DML (Lockless change), PROCEDURE (Programmable Object), CRON_CLEAR_DATA (History Data Clean), BIG_FILE (Large Data Import). |
@fac.is_logic | Boolean | Apakah database target merupakan database logis. |
@fac.is_ignore_affect_rows | Boolean | Apakah verifikasi jumlah baris dilewati. |
@fac.insert_rows | Number | Jumlah baris yang akan dimasukkan. |
@fac.update_delete_rows | Number | Jumlah baris yang akan diperbarui atau dihapus. |
@fac.max_alter_table_size | Number | Ukuran ruang tabel terbesar yang berisi tabel yang akan dimodifikasi. |
@fac.is_has_security_column | Boolean | Apakah pernyataan SQL melibatkan bidang sensitif. |
@fac.security_column_list | List | Bidang sensitif yang terlibat dalam pernyataan SQL. |
@fac.risk_level | String | Tingkat risiko yang ditetapkan untuk perubahan data. |
@fac.risk_reason | String | Alasan perubahan data diberi tingkat risiko tersebut. |
@fac.table_name_list | List | Nama tabel yang terlibat dalam perubahan data. |
@fac.extra_info | String | Informasi tambahan tiket. Saat ini tidak digunakan. |
Contoh: Tandai perubahan pada tabel pesanan sebagai risiko tinggi:
if
'tb_order' in @fac.table_name_list or 'tb1_order' in @fac.table_name_list
then
@act.mark_risk 'high' 'High-level risk: involving order table'
endAksi
Tabel 2. Aksi yang tersedia di tab SQL Correct
| Action | Description |
|---|---|
@act.allow_submit | Mengizinkan pernyataan SQL diajukan dalam tiket. |
@act.allow_execute_direct | Mengizinkan pernyataan SQL dijalankan langsung di SQL Console. |
@act.forbid_execute | Memblokir eksekusi pernyataan SQL. |
@act.mark_risk | Menetapkan tingkat risiko untuk perubahan data. Format: @act.mark_risk 'middle' 'Medium-level risk: online environment'. |
@act.do_not_approve | Menentukan ID templat persetujuan. Untuk detailnya, lihat Configure approval processes. |
@act.choose_approve_template | — |
@act.choose_approve_template_with_reason | — |
Ubah templat persetujuan default
Masuk ke DMS console V5.0.
-
Arahkan penunjuk ke ikon
di pojok kiri atas dan pilih . CatatanJika Anda menggunakan DMS console dalam mode normal, pilih di bilah navigasi atas.
Di tab Security Rules, temukan set aturan keamanan dan klik Edit di kolom Actions.
Di halaman Details, klik tab SQL Correct di sebelah kiri.
Pilih Basic Configuration Item untuk parameter Checkpoints.
Temukan aturan Data change default approval Template dan klik Edit di kolom Actions.
Di kotak dialog Change Configuration Item, klik Switch Approval Template.
Di kotak dialog Switch Approval Template, temukan templat dan klik Select di kolom Actions.
Untuk menghapus persyaratan persetujuan sepenuhnya, klik Reset to Free of Approval.
Klik Submit.