All Products
Search
Document Center

Data Management:SQL Correct

Last Updated:Jul 30, 2026

Fitur SQL Correct merupakan titik masuk untuk mengeksekusi perubahan SQL dan memerlukan tingkat keamanan yang tinggi. Saat Anda mengajukan tiket untuk persetujuan, serangkaian aturan keamanan akan memverifikasi permintaan tersebut. Hanya pernyataan SQL yang lolos verifikasi ini yang dapat dieksekusi.

Prasyarat

Anda adalah Administrator, DBA, atau Security Administrator.

Informasi latar belakang

Aturan keamanan di Data Management (DMS) menyediakan kemampuan bahasa domain-spesifik (DSL) yang fleksibel, memungkinkan Anda menyesuaikan tingkat risiko sesuai kebutuhan dan menerapkan alur kerja persetujuan berbeda untuk perubahan dengan tingkat risiko yang berbeda. Misalnya, Anda dapat membatasi eksekusi SQL secara ketat atau mengizinkan semua pernyataan SQL secara longgar.

Checkpoint modul SQL Correct

Checkpoint

Deskripsi

Contoh

Basic Configuration Item

Bagian ini berisi lima aturan default:

  • Default approval template for data changes: ID templat persetujuan default untuk tiket perubahan data adalah 853, dan pemberi persetujuan adalah DBA.

    Catatan

    Untuk mengubah templat persetujuan default, lihat Ubah templat persetujuan default.

  • Risk level list for data changes: Tingkat risiko digunakan untuk menilai risiko perubahan dalam tiket. Anda dapat mengatur tingkat risiko dan alur kerja persetujuan berbeda untuk skenario berbeda. Ini terutama digunakan untuk checkpoint Risk Identification Rules dan Risk Approval Rules.

    Tersedia empat tingkat risiko default:

    • LOW: Risiko rendah

    • MIDDLE: Risiko menengah

    • HIGH: Risiko tinggi

    • HIGHEST: Risiko kritis

  • Support for simple mode in data import: Menentukan apakah mode simple didukung saat Anda membuat tiket impor data untuk database yang menggunakan aturan keamanan ini. Untuk informasi selengkapnya, lihat Data Import.

  • Allow Skipping The Affected Rows Check For Standard Data Changes: Jika Anda mengaktifkan aturan ini, DMS melarang melewati pemeriksaan baris yang terpengaruh untuk tiket perubahan data standar selama tahap Pemeriksaan Awal. Jika tidak, Anda dapat melewati pemeriksaan ini.

  • Prohibit submitting normal data change tickets with inconsistent row count checks: Jika aturan ini diaktifkan, tiket perubahan data normal dengan pemeriksaan jumlah baris yang tidak konsisten tidak dapat diajukan. Jika tidak, tiket tersebut dapat diajukan.

-

SQL execution rules

Membatasi pernyataan SQL yang dapat dieksekusi di jendela SQL. Hanya pernyataan SQL yang diizinkan yang dapat dieksekusi.

Catatan

Jika dua aturan yang saling bertentangan diaktifkan, aturan yang lebih ketat akan diberlakukan.

Misalnya, jika kedua aturan berikut diaktifkan bersamaan, sistem akan memberlakukan aturan kedua.

  • Izinkan semua pernyataan DML untuk dieksekusi langsung di konsol SQL.

  • Larang semua pernyataan DML dieksekusi langsung di konsol SQL. Pernyataan tersebut harus dieksekusi melalui tiket.

Untuk hanya mengizinkan pernyataan DML memodifikasi database produk online, tambahkan aturan eksekusi SQL berikut:

Asumsi

if
  @fac.env_type not in ['product']
  and
  @fac.sql_type in [ 'UPDATE','DELETE','INSERT']
then
  @act.allow_submit
end

Makna: Jika lingkungan database bukan lingkungan produksi dan pernyataan SQL bertipe UPDATE, DELETE, atau INSERT, maka pernyataan SQL tersebut diizinkan untuk dieksekusi.

Risk Identification Rules

Mengidentifikasi tingkat risiko tiket yang diajukan. Anda dapat menyesuaikan tingkat risiko berdasarkan kondisi seperti lingkungan database, jumlah baris yang terpengaruh, dan tipe SQL.

Catatan

Aturan keamanan berbeda menandai tugas perubahan dengan tingkat risiko berbeda. Tingkat risiko akhir adalah tingkat tertinggi di antara semua tingkat yang ditandai.

Misalnya, tugas perubahan SQL yang memiliki 5 risiko rendah, 3 risiko menengah, dan 1 risiko tinggi diklasifikasikan sebagai risiko tinggi.

Untuk menetapkan lingkungan offline sebagai risiko rendah, tambahkan aturan identifikasi risiko berikut:

if
  @fac.env_type not in ['product','pre']
then
  @act.mark_risk 'low' 'Low risk: offline environment'
end

Makna: Jika lingkungan database bukan lingkungan produksi, tingkat risikonya rendah.

Risk Approval Rules

Konfigurasikan atau sesuaikan aturan persetujuan untuk tingkat risiko berbeda.

Jika perubahan database tidak mencocokkan tingkat risiko apa pun pada checkpoint Risk Identification Rules, maka alur kerja persetujuan yang digunakan adalah yang ditentukan oleh Default approval template for data changes di bagian Basic Configuration Item.

Secara default, lingkungan staging dianggap berisiko rendah dan tidak memerlukan persetujuan.

Batch data import rules

Aturan validasi yang berlaku untuk tiket Data Import.

Mengizinkan impor batch pernyataan insert.

Ubah templat persetujuan default

  1. Masuk ke DMS 5.0.

  2. Arahkan penunjuk ke ikon 2023-01-28_15-57-17.png di pojok kiri atas dan pilih All Features > Security and disaster recovery (DBS) > Security Rules.

    Catatan

    Jika Anda menggunakan konsol DMS dalam mode normal, pilih Security and disaster recovery (DBS) > Security Rules di bilah navigasi atas.

  3. Pada tab Security Rules, temukan set aturan target dan klik Edit di kolom Actions.

  4. Di bilah navigasi kiri pada halaman Details, klik SQL Correct.

  5. Di bagian Checkpoints, klik Basic Configuration Item.

  6. Pada baris Data change default approval Template, klik Edit di kolom Actions.

  7. Di kotak dialog Change Configuration Item, klik Switch Approval Template.

  8. Di kotak dialog Switch Approval Template, temukan templat target dan klik Select di kolom Actions.

    Catatan

    Jika tiket tidak memerlukan persetujuan, Anda dapat mengklik Reset to Approval-Free untuk melewati langkah persetujuan.

  9. Klik Submit.

Faktor dan aksi untuk modul SQL Correct

Faktor

Faktor adalah variabel sistem bawaan yang dapat digunakan untuk memperoleh informasi konteks guna verifikasi aturan keamanan, seperti tipe SQL dan jumlah baris yang terpengaruh.

  • Semua faktor diawali dengan @fac. diikuti nama faktor.

  • Checkpoint berbeda di setiap modul menyediakan faktor berbeda.

Tabel 1. Daftar faktor

Faktor

Deskripsi

@fac.env_type

Tipe lingkungan. Nilainya adalah pengenal lingkungan, seperti DEV atau PRODUCT. Untuk informasi selengkapnya, lihat Instance environments.

@fac.sql_type

Tipe skrip SQL, seperti UPDATE atau INSERT. Untuk informasi selengkapnya, lihat deskripsi subkelas SQL di SQLConsole.

@fac.detail_type

Tipe perubahan data:

  • COMMON: Perubahan data normal

  • CHUNK_DML: Perubahan data tanpa lock

  • PROCEDURE: Stored procedure

  • CRON_CLEAR_DATA: Pembersihan tabel terjadwal

  • BIG_FILE: Impor data batch

@fac.is_logic

Menunjukkan apakah database merupakan database logis.

@fac.extra_info

Informasi perubahan lainnya. Faktor ini tidak sedang digunakan.

@fac.is_ignore_affect_rows

Menunjukkan apakah akan melewati pemeriksaan.

@fac.insert_rows

Jumlah baris yang terpengaruh untuk operasi insert.

@fac.update_delete_rows

Jumlah baris yang terpengaruh.

@fac.max_alter_table_size

Ukuran ruang tabel maksimum dari tabel yang dimodifikasi.

@fac.is_has_security_column

Menunjukkan apakah skrip SQL berisi kolom sensitif.

@fac.security_column_list

Daftar kolom sensitif yang terdapat dalam skrip SQL.

@fac.risk_level

Tingkat risiko yang terdeteksi. Nilai yang valid adalah string bahasa Inggris huruf kecil, diurutkan dari terendah ke tertinggi:

  • low: risiko rendah

  • middle: risiko menengah

  • high: risiko tinggi

  • highest: risiko kritis

@fac.risk_reason

Alasan mengapa tingkat risiko ini terdeteksi.

@fac.table_name_list

Daftar nama tabel yang terlibat dalam perubahan SQL. Contoh:

if    
   'tb_order' in @fac.table_name_list or 'tb1_order' in @fac.table_name_list
then    
    @act.mark_risk 'high' 'High risk: Involves changes to the order table'
end

Makna: Jika perubahan SQL melibatkan tabel tb_order atau tb1_order, tingkat risikonya tinggi.

Aksi

Aksi adalah perilaku yang dilakukan sistem saat kondisi if terpenuhi, seperti melarang pengajuan tiket, memilih alur kerja, mengizinkan eksekusi, atau menolak eksekusi.

  • Semua aksi diawali dengan @act. diikuti nama aksi.

  • Checkpoint berbeda di setiap modul menyediakan aksi berbeda.

Tabel 2. Daftar aksi

Tindakan

Deskripsi

@act.allow_submit

Mengizinkan tiket diajukan untuk eksekusi.

@act.allow_execute_direct

Mengizinkan eksekusi langsung di konsol SQL.

@act.forbid_execute

Melarang eksekusi.

@act.mark_risk

Menandai risiko. Parameter pertama menentukan tingkat risiko dan hanya mendukung empat nilai huruf kecil berikut (dari terendah ke tertinggi): low (risiko rendah), middle (risiko menengah), high (risiko tinggi), highest (risiko kritis). Parameter kedua adalah deskripsi alasan risiko. Penggunaan: @act.mark_risk 'middle' 'Medium risk: production environment'.

@act.do_not_approve

Menentukan ID templat persetujuan. Untuk informasi selengkapnya, lihat Set approval workflows.

@act.choose_approve_template

@act.choose_approve_template_with_reason