Topik ini menjelaskan konfigurasi dasar, checkpoint, faktor, aksi, dan pustaka templat untuk desain skema, serta cara mengubah templat persetujuan default dan menambahkan aturan baru.
Informasi latar belakang
Tiket desain skema biasanya melibatkan beberapa instans dan mengikuti proses standar: mendesain skema di lingkungan pengujian, lalu menerbitkannya ke lingkungan produksi. Oleh karena itu, basic configurations, design rules, dan risk identification rules dalam aturan keamanan untuk desain skema menggunakan aturan keamanan yang terkait dengan change baseline database (database di lingkungan pengujian).
-
Design rules mencakup Save and Edit - Check Table Header, Save and Edit - Check Field, dan Save and Edit - Check Index. Pada halaman edit aturan keamanan, ketiga checkpoint ini muncul sebagai tab di bagian Checkpoints.
-
Risk identification rules mencakup Control Risks of Creating Tables, Control Risks of Modifying Fields, Control Risks of Modifying Indexes, dan Control Risks of SQL Executions. Ini juga muncul sebagai tab di bagian Checkpoints.
Namun, proses persetujuan menggunakan aturan keamanan database di lingkungan produksi. Misalnya, jika tiket desain skema diterbitkan ke database B, sistem akan menerapkan aturan keamanan instans B.
Konfigurasi dasar
Desain skema memiliki beberapa konfigurasi dasar:
-
Aktifkan Asymmetric Publishing: Secara default, perubahan desain skema hanya dapat diterbitkan secara simetris, artinya perubahan pada suatu tabel hanya dapat diterbitkan ke tabel dengan nama yang sama di database lain. Setelah Anda mengaktifkan asymmetric publishing, Anda dapat menerbitkan perubahan ke tabel target apa pun, terlepas dari namanya.
PeringatanFitur ini membawa risiko signifikan. Aktifkan dengan hati-hati dan hanya untuk skenario tertentu.
-
Proses Pengembangan: Ini merupakan konfigurasi utama dalam aturan keamanan desain skema. Konfigurasi ini menetapkan semua tahapan dalam siklus hidup tiket desain skema. Tabel berikut menjelaskan opsi-opsi tersebut.
Parameter
Deskripsi
Step
Terdiri dari node Design dan Publish.
-
Node Design: Node Design adalah default dan tidak dapat dihapus. Node ini menentukan lingkungan tempat tugas perubahan skema dirancang.
-
Node Publish: Setelah desain selesai, proses berlanjut ke tahap publish untuk menerapkan perubahan. Anda dapat menambahkan beberapa node publish.
Node Name
Nama node kustom, panjang maksimal 10 karakter.
Database Environment
Lingkungan tempat node dijalankan.
Execution Strategy
-
Immediately: Tugas dieksekusi segera setelah disetujui.
-
Timed: Anda dapat menentukan waktu untuk menerbitkan tugas. Jika tugas disetujui sebelum waktu yang ditentukan, tugas akan dieksekusi pada waktu tersebut. Jika tidak, tugas dibatalkan.
Can be Rolled Back
Menentukan apakah tugas publish dapat dikembalikan ke node Design.
Can be Skipped
Menentukan apakah langkah saat ini dapat dilewati.
Anchor
Menandai titik di mana pengeditan tiket dibekukan. Setelah langkah yang di-anchor berhasil diselesaikan, skema tidak dapat lagi diedit, dan status tiket berubah menjadi Published.
Operation
Anda dapat menghapus node Publish sesuai kebutuhan.
-
-
Konfigurasi Tipe Field: Mengonfigurasi tipe data yang diizinkan untuk opsi Add Field.
-
Konfigurasi Tipe Indeks: Menentukan tipe data yang diizinkan dalam Add Index.
-
Templat Pembuatan Tabel: Mengonfigurasi templat untuk membuat tabel. Tabel baru memuat templat ini secara default. Templat ini bersifat opsional dan dapat dimodifikasi selama pembuatan tabel.
-
Larang memodifikasi tipe data field asli: Melarang modifikasi tipe data field yang sudah ada saat mengubah tabel.
-
Larang menghapus field asli: Menentukan apakah penghapusan field yang sudah ada saat mengubah tabel dilarang. Ini merupakan operasi berisiko tinggi, sehingga kami merekomendasikan untuk mengaktifkan opsi ini.
-
Larang mengganti nama field asli: Menentukan apakah penggantian nama field yang sudah ada saat mengubah tabel dilarang. Mengganti nama field yang sudah ada merupakan operasi berisiko tinggi. Kami merekomendasikan agar Anda mengaktifkan opsi ini.
-
Konfigurasi Izin Set Karakter Tabel: Mengonfigurasi set karakter yang diizinkan untuk tabel baru, seperti utf8 dan utf8mb4.
-
Templat Persetujuan Default untuk Desain Skema: Jika tidak ada aturan persetujuan yang dikonfigurasi untuk checkpoint Approval Rule Check, tiket desain skema akan menggunakan templat persetujuan default ini. Anda dapat mengubah proses persetujuan templat default dengan menggunakan fitur Switch Approval Template. Untuk informasi lebih lanjut, lihat Ubah templat persetujuan default.
-
Otomatis majukan tiket ke status closed setelah rilis: Jika diaktifkan, setelah node yang berisi anchor dalam proses pengembangan berhasil mengeksekusi perubahan, sistem secara otomatis memajukan tiket ke status closed. (Anchor harus berada di node rilis terakhir dalam proses pengembangan.)
Checkpoint
Desain skema melibatkan dua proses:
-
Proses simpan dan edit: Proses ini berkaitan dengan tiga checkpoint berikut, yang secara berurutan memeriksa spesifikasi untuk header tabel, field, dan indeks.
-
Save and Edit - Check Table Header
-
Save and Edit - Check Field
-
Save and Edit - Check Index
-
-
Proses eksekusi perubahan: Proses ini berkaitan dengan lima checkpoint berikut. Empat checkpoint pertama mengidentifikasi risiko perubahan Data Definition Language (DDL), sedangkan yang terakhir menentukan proses persetujuan untuk setiap risiko.
-
Control Risks of Creating Tables
-
Control Risks of Modifying Fields
-
Control Risks of Modifying Indexes
-
Control Risks of SQL Executions
-
Approval Rule Check
-
Kedua proses tersebut memiliki banyak templat aturan keamanan bawaan yang dapat Anda gunakan langsung atau sesuaikan. Untuk informasi lebih lanjut, lihat Tambahkan aturan baru.
Faktor dan aksi
-
Faktor: Faktor adalah variabel sistem bawaan yang menyediakan informasi kontekstual untuk pemeriksaan aturan keamanan, seperti tipe SQL atau jumlah baris yang terpengaruh. Semua faktor diawali dengan
@fac.diikuti nama faktor. Setiap modul menyediakan faktor berbeda untuk checkpoint berbeda. Tabel berikut menjelaskan faktor yang tersedia untuk schema change.Faktor
Deskripsi
@fac.table_kind
Jenis tabel yang sedang diedit. Nilai valid:
-
new: Tabel baru.
-
old: Tabel yang sudah ada.
@fac.column_kind
Jenis field dalam skema tabel. Nilai valid:
-
new: Field baru.
-
old: Field yang sudah ada.
@fac.xxxx_old
Mengambil nilai asli field atau indeks untuk perbandingan.
@fac.column_is_primary
Menunjukkan apakah field merupakan bagian dari primary key. Nilai valid:
-
true: Field termasuk dalam primary key.
-
false: Field tidak termasuk dalam primary key.
@fac.column_type_support_default
Menunjukkan apakah nilai default dapat diatur untuk tipe data field tersebut. Nilai valid:
-
true: Didukung.
-
false: Tidak didukung.
Contohnya, tipe data
CHARmendukung nilai default, tetapi tipe dataTEXTtidak.@fac.index_kind
Jenis indeks dalam skema tabel. Nilai valid:
-
new: Indeks baru.
-
old: Indeks yang sudah ada.
@fac.index_column_count
Jumlah field dalam indeks.
@fac.change_type
Jenis perubahan field atau indeks yang diidentifikasi oleh database tempat pernyataan DDL dieksekusi. Nilai valid:
-
add
-
modify
-
delete
@fac.altered_table_size
Ukuran tabel yang dimodifikasi, dalam MB.
@fac.online_execute
Menunjukkan apakah perubahan dapat dieksekusi secara online. Nilai valid:
-
true: ONLINE
-
false: NOT ONLINE
@fac.change_risk_level
Tingkat risiko perubahan. Nilai valid:
-
high: Risiko tinggi
-
medium: Risiko menengah
-
low: Risiko rendah
@fac.env_type
Jenis lingkungan, yaitu pengenal lingkungan, seperti
DEVatauPRODUCT. Untuk informasi lebih lanjut tentang jenis lingkungan, lihat Ubah jenis lingkungan instans. -
-
Aksi: Aksi adalah perilaku yang dilakukan sistem setelah kondisi
ifterpenuhi, seperti melarang pengiriman tiket, memilih alur kerja, mengizinkan eksekusi, atau menolak eksekusi. Aksi-aksi ini menentukan tujuan utama aturan keamanan. Semua aksi diawali dengan@act.diikuti nama aksi. Setiap modul menyediakan aksi berbeda untuk checkpoint berbeda. Tabel berikut menjelaskan aksi yang tersedia untuk schema design.Aksi
Deskripsi
@act.block_submit
Memblokir pengiriman dan menampilkan pesan error pada tahap penyimpanan tabel. Penggunaan:
@act.block_submit 'Alasan pemblokiran'.@act.show_warning
Digunakan pada tahap penyimpanan tabel. Menampilkan pesan peringatan tanpa memblokir pengiriman. Penggunaan:
@act.show_warning 'Isi peringatan'.@act.mark_middle_risk
Digunakan pada tahap identifikasi risiko. Menandai perubahan sebagai risiko menengah. Penggunaan:
@act.mark_middle_risk 'Alasan'.@act.mark_high_risk
Digunakan pada tahap identifikasi risiko. Menandai perubahan sebagai risiko tinggi. Penggunaan:
@act.mark_high_risk 'Alasan'.@act.forbid_submit_publish
Digunakan pada tahap konfigurasi proses persetujuan. Memblokir perubahan agar tidak dieksekusi. Penggunaan:
@act.forbid_submit_publish 'Alasan'.@act.do_not_approve
Menentukan ID templat persetujuan. Untuk informasi lebih lanjut, lihat Atur proses persetujuan.
@act.choose_approve_template
@act.choose_approve_template_with_reason
Pustaka templat
Security Rules menyediakan banyak templat aturan yang dapat Anda aktifkan langsung atau modifikasi sebelum diaktifkan. Tabel berikut mencantumkan templat untuk schema change.
|
Checkpoint |
Templat |
|
Save and Edit - Check Table Header |
Larang menggunakan kata kunci sebagai nama tabel untuk tabel baru |
|
Batasi panjang nama untuk tabel baru |
|
|
Wajibkan komentar untuk tabel baru |
|
|
Wajibkan nama tabel baru menggunakan huruf kecil |
|
|
Wajibkan primary key (PK) untuk tabel baru |
|
|
Wajibkan kunci unik (PK/UK) untuk tabel baru |
|
|
Periksa jumlah indeks dan beri peringatan kepada pengguna jika jumlahnya berlebihan |
|
|
Periksa apakah field tertentu ada untuk tabel baru |
|
|
Save and Edit - Check Field |
Larang menggunakan kata kunci sebagai nama field untuk field baru |
|
Wajibkan komentar untuk field baru |
|
|
Tentukan sensitivitas huruf besar/kecil untuk nama field baru |
|
|
Wajibkan nilai default saat menambahkan field non-null ke tabel yang sudah ada |
|
|
Wajibkan nilai default saat mengubah field yang sudah ada dari nullable menjadi non-nullable |
|
|
Wajibkan field primary key baru bertipe integer |
|
|
Wajibkan semua field dalam tabel baru bersifat non-nullable |
|
|
Batasi panjang field baru bertipe CHAR |
|
|
Batasi panjang field baru bertipe VARCHAR |
|
|
Save and Edit - Check Index |
Larang menggunakan kata kunci sebagai nama indeks untuk indeks baru |
|
Tentukan sensitivitas huruf besar/kecil untuk nama indeks baru |
|
|
Batasi format nama untuk indeks UNIQUE baru |
|
|
Batasi format nama untuk indeks NORMAL baru |
|
|
Batasi format nama untuk indeks FULLTEXT baru |
|
|
Batasi format nama untuk indeks SPATIAL baru |
|
|
Batasi jumlah field primary key baru |
|
|
Batasi jumlah field indeks baru |
|
|
Control Risks of Creating Tables |
Kontrol jumlah shard untuk tabel logis |
|
Kontrol primary key tabel |
|
|
Kontrol jumlah total indeks dalam tabel |
|
|
Control Risks of Modifying Fields |
Kontrol penghapusan field |
|
Kontrol tipe data field baru |
|
|
Kontrol penggantian nama field |
|
|
Kontrol modifikasi tipe data field |
|
|
Control Risks of Modifying Indexes |
Kontrol penghapusan primary key |
|
Kontrol penghapusan indeks |
|
|
Kontrol perubahan dari primary key menjadi indeks |
|
|
Kontrol perubahan kolom dalam primary key |
|
|
Kontrol modifikasi indeks umum |
|
|
Kontrol tipe indeks baru |
|
|
Control Risks of SQL Executions |
Kontrol risiko instans inti |
|
Kontrol mesin penyimpanan tabel |
|
|
Kontrol risiko penguncian tabel atau perubahan skema tabel besar |
|
|
Approval Rule Check |
Larang menerapkan perubahan DDL apa pun ke database |
|
Larang menerapkan perubahan DDL apa pun ke database produksi |
|
|
Konfigurasi perubahan DDL tanpa persetujuan untuk database pengujian |
|
|
Tetapkan aturan persetujuan berdasarkan tingkat risiko untuk lingkungan produksi |
Ubah templat persetujuan default
Masuk ke DMS 5.0.
-
Arahkan penunjuk ke ikon
di pojok kiri atas dan pilih .CatatanJika Anda menggunakan konsol DMS dalam mode normal, pilih di bilah navigasi atas.
-
Pada halaman Security Rules, temukan set aturan target dan klik Edit di kolom Actions.
-
Di panel navigasi kiri halaman Details, klik Schema Design.
-
Pada tab Schema Design, klik Basic Configurations.
-
Temukan Default Approval Template for Schema Design dan klik Edit di kolom Actions.
-
Di kotak dialog Edit Configuration Item, klik Switch Approval Template.
-
Temukan templat target berdasarkan Template Name-nya dan klik Select di kolom Actions.
CatatanAnda juga dapat mengklik Reset to No Approval untuk mengizinkan tiket melewati proses persetujuan.
-
Klik Submit.
Tambahkan aturan baru
Masuk ke DMS 5.0.
-
Arahkan penunjuk ke ikon
di pojok kiri atas dan pilih .CatatanJika Anda menggunakan konsol DMS dalam mode normal, pilih di bilah navigasi atas.
-
Pada halaman Security Rules, temukan set aturan target dan klik Edit di kolom Actions.
-
Di panel navigasi kiri halaman Details, klik Schema Design.
-
Pada tab Schema Design, klik Add Rule di sebelah kanan Actions.
-
Di kotak dialog Add Rule - Schema Design, konfigurasikan parameter berikut.
Parameter
Deskripsi
Checkpoint (Wajib)
Pilih checkpoint untuk aturan baru. Desain skema menyediakan beberapa checkpoint. Untuk informasi lebih lanjut, lihat Checkpoint.
Template Library (Opsional)
Pustaka templat menyediakan banyak templat aturan. Setelah Anda memilih Checkpoint, Anda dapat memuat templat aturan dari Template Library. Untuk daftar templat yang tersedia, lihat Pustaka templat.
Rule Name (Wajib)
Nama kustom untuk aturan. Jika Anda memilih templat aturan dari Template Library, bidang ini akan diisi otomatis.
Rule DSL (Wajib)
Masukkan Rule DSL. Untuk informasi lebih lanjut tentang sintaks DSL, lihat dokumentasi. (Bidang ini diisi otomatis jika Anda memilih templat aturan di Template Library.)
-
Klik Submit.
-
Secara default, aturan baru berada dalam status Disabled. Temukan aturan tersebut dan klik Enable di kolom Actions.
-
Di kotak dialog yang muncul, klik OK.