Bu konu, şema tasarımı için temel yapılandırmaları, kontrol noktalarını, faktörleri, eylemleri ve şablon kitaplığını açıklar; ayrıca varsayılan onay şablonunun nasıl değiştirileceğini ve yeni kuralların nasıl ekleneceğini anlatır.
Arka plan bilgileri
Bir şema tasarımı bileti genellikle birden fazla örneği kapsar ve standart bir süreci izler: Önce test ortamında şema tasarlanır, ardından üretim ortamına yayımlanır. Bu nedenle, şema tasarımı için güvenlik kurallarındaki basic configurations, design rules ve risk identification rules, change baseline database (test ortamındaki bir veritabanı) ile ilişkili güvenlik kurallarını kullanır.
Design rules arasında Save and Edit - Check Table Header, Save and Edit - Check Field ve Save and Edit - Check Index bulunur. Güvenlik kuralı düzenleme sayfasında bu üç kontrol noktası, Checkpoints bölümünde sekmeler olarak görünür.
Risk identification rules arasında Control Risks of Creating Tables, Control Risks of Modifying Fields, Control Risks of Modifying Indexes ve Control Risks of SQL Executions yer alır. Bunlar da Checkpoints bölümünde sekmeler olarak gösterilir.
Ancak onay süreci, üretim ortamındaki veritabanının güvenlik kurallarını kullanır. Örneğin, bir şema tasarımı bileti B veritabanına yayımlandığında sistem B örneğinin güvenlik kurallarını uygular.
Temel yapılandırmalar
Şema tasarımının birkaç temel yapılandırması vardır:
-
Asimetrik Yayımlamayı Etkinleştir: Varsayılan olarak şema tasarımı değişiklikleri yalnızca simetrik olarak yayımlanabilir; yani bir tablodaki değişiklikler yalnızca başka bir veritabanındaki aynı ada sahip bir tabloya yayımlanabilir. Asimetrik yayımlamayı etkinleştirdiğinizde adından bağımsız olarak herhangi bir hedef tabloya değişiklik yayımlayabilirsiniz.
UyarıBu özellik önemli riskler taşır. Yalnızca belirli senaryolar için dikkatle etkinleştirin.
-
Geliştirme Süreci: Bu, şema tasarımı güvenlik kurallarındaki temel bir yapılandırmadır. Bir şema tasarımı biletinin yaşam döngüsündeki tüm aşamaları tanımlar. Aşağıdaki tabloda bu seçenekler açıklanmıştır.
Parametre
Açıklama
Step
Design ve Publish düğümlerinden oluşur.
-
Tasarım düğümü: Tasarım düğümü varsayılandır ve kaldırılamaz. Şema değişikliği görevinin hangi ortamda tasarlanacağını belirler.
-
Yayımlama düğümü: Tasarım tamamlandıktan sonra süreç değişiklikleri uygulamak için yayımlama aşamasına geçer. Birden fazla yayımlama düğümü ekleyebilirsiniz.
Node Name
En fazla 10 karakter uzunluğunda özel bir düğüm adı.
Database Environment
Düğümün çalıştığı ortam.
Execution Strategy
-
Immediately: Görev onaylandıktan hemen sonra çalıştırılır.
-
Timed: Görevi yayımlamak için bir zaman belirtebilirsiniz. Görev belirtilen zamandan önce onaylanırsa o zamanda çalıştırılır. Aksi takdirde görev iptal edilir.
Can be Rolled Back
Yayımlama görevinin Design düğümüne geri alınıp alınamayacağını belirtir.
Can be Skipped
Geçerli adımın atlanıp atlanamayacağını belirtir.
Anchor
Bilet düzenlemenin dondurulduğu noktayı işaretler. Çapalı adım başarıyla tamamlandıktan sonra şema artık düzenlenemez ve bilet durumu Published olarak değişir.
Operation
Gereksinimlerinize göre bir Publish düğümünü kaldırabilirsiniz.
-
Alan Türü Yapılandırması: Add Field seçeneği için izin verilen veri türlerini yapılandırır.
Dizin Türü Yapılandırması: Add Index içinde izin verilen veri türlerini belirtir.
Tablo Oluşturma Şablonu: Tablo oluşturma için bir şablon yapılandırır. Yeni tablolar varsayılan olarak bu şablonu yükler. Bu şablon isteğe bağlıdır ve tablo oluşturma sırasında değiştirilebilir.
Orijinal alanların veri türlerinin değiştirilmesini yasakla: Bir tabloyu değiştirirken mevcut alanların veri türlerinin değiştirilmesini yasaklar.
Orijinal alanların silinmesini yasakla: Bir tabloyu değiştirirken mevcut alanların silinmesinin yasaklanıp yasaklanmayacağını belirtir. Bu yüksek riskli bir işlemdir, bu nedenle bu seçeneği etkinleştirmenizi öneririz.
Orijinal alanların yeniden adlandırılmasını yasakla: Bir tabloyu değiştirirken mevcut alanların yeniden adlandırılmasının yasaklanıp yasaklanmayacağını belirtir. Mevcut alanları yeniden adlandırmak yüksek riskli bir işlemdir. Bu seçeneği etkinleştirmenizi öneririz.
Tablo Karakter Kümesi İzin Yapılandırması: utf8 ve utf8mb4 gibi yeni tablolar için izin verilen karakter kümelerini yapılandırır.
Şema Tasarımı için Varsayılan Onay Şablonu: Approval Rule Check kontrol noktası için bir onay kuralı yapılandırılmamışsa şema tasarımı biletleri bu varsayılan onay şablonunu kullanır. Varsayılan şablonun onay sürecini Switch Approval Template özelliğini kullanarak değiştirebilirsiniz. Daha fazla bilgi için bkz. Varsayılan onay şablonunu değiştirme.
Yayımlama sırasında bileti otomatik olarak kapalı duruma ilerlet: Etkinleştirildiğinde geliştirme sürecindeki anchor içeren düğüm bir değişikliği başarıyla yürüttükten sonra sistem bileti otomatik olarak kapalı duruma ilerletir. (Çapa, geliştirme sürecindeki son yayımlama düğümünde olmalıdır.)
Kontrol noktaları
Şema tasarımı iki süreci içerir:
-
Kaydetme ve düzenleme süreci: Bu süreç aşağıdaki üç kontrol noktasına karşılık gelir; tablo başlıkları, alanlar ve dizinler için spesifikasyonları sırayla kontrol eder.
Save and Edit - Check Table Header
Save and Edit - Check Field
Save and Edit - Check Index
-
Değişiklik yürütme süreci: Bu süreç aşağıdaki beş kontrol noktasına karşılık gelir. İlk dört nokta Veri Tanımlama Dili (DDL) değişikliklerinin risklerini belirler, son nokta ise her risk için onay sürecini belirtir.
Control Risks of Creating Tables
Control Risks of Modifying Fields
Control Risks of Modifying Indexes
Control Risks of SQL Executions
Approval Rule Check
Her iki süreç de doğrudan kullanabileceğiniz veya özelleştirebileceğiniz çok sayıda yerleşik güvenlik kuralı şablonu sunar. Daha fazla bilgi için bkz. Yeni kural ekleme.
Faktörler ve eylemler
-
Faktör: Bir faktör, güvenlik kuralı kontrolleri için bağlamsal bilgiler sağlayan yerleşik bir sistem değişkenidir; örneğin SQL türü veya etkilenen satır sayısı. Tüm faktörler
@fac.ifadesiyle başlar ve ardından faktör adı gelir. Her modül farklı kontrol noktaları için farklı faktörler sağlar. Aşağıdaki tabloda schema change için kullanılabilen faktörler açıklanmıştır.Faktör
Açıklama
@fac.table_kind
Düzenlenen tablonun türü. Geçerli değerler:
-
new: Yeni bir tablo.
-
old: Mevcut bir tablo.
@fac.column_kind
Tablo şemasındaki alanın türü. Geçerli değerler:
-
new: Yeni bir alan.
-
old: Mevcut bir alan.
@fac.xxxx_old
Karşılaştırma amacıyla bir alanın veya dizinin orijinal değerini alır.
@fac.column_is_primary
Bir alanın birincil anahtarın parçası olup olmadığını belirtir. Geçerli değerler:
-
true: Alan birincil anahtardadır.
-
false: Alan birincil anahtarda değildir.
@fac.column_type_support_default
Alanın veri türü için varsayılan bir değer ayarlanıp ayarlanamayacağını belirtir. Geçerli değerler:
-
true: Desteklenir.
-
false: Desteklenmez.
Örneğin,
CHARveri türü varsayılan bir değeri destekler ancakTEXTveri türü desteklemez.@fac.index_kind
Tablo şemasındaki dizinin türü. Geçerli değerler:
-
new: Yeni bir dizin.
-
old: Mevcut bir dizin.
@fac.index_column_count
Dizindeki alan sayısı.
@fac.change_type
DDL deyiminin çalıştırıldığı veritabanı tarafından belirlenen alan veya dizin değişikliği türü. Geçerli değerler:
-
add
-
modify
-
delete
@fac.altered_table_size
MB cinsinden değiştirilen tablonun boyutu.
@fac.online_execute
Değişikliğin çevrimiçi olarak yürütülüp yürütülemeyeceğini belirtir. Geçerli değerler:
-
true: ONLINE
-
false: NOT ONLINE
@fac.change_risk_level
Değişikliğin risk düzeyi. Geçerli değerler:
-
high: Yüksek risk
-
medium: Orta risk
-
low: Düşük risk
@fac.env_type
Ortam türü;
DEVveyaPRODUCTgibi ortam tanımlayıcısıdır. Ortam türleri hakkında daha fazla bilgi için bkz. Bir örneğin ortam türünü değiştirme. -
-
Eylem: Bir eylem,
ifkoşulu karşılandığında sistemin gerçekleştirdiği bir davranıştır; örneğin bilet gönderimini engelleme, iş akışı seçme, yürütmeye izin verme veya yürütmeyi reddetme. Bu eylemler bir güvenlik kuralının temel amacını tanımlar. Tüm eylemler@act.ifadesiyle başlar ve ardından eylem adı gelir. Her modül farklı kontrol noktaları için farklı eylemler sağlar. Aşağıdaki tabloda schema design için kullanılabilen eylemler açıklanmıştır.Eylemler
Açıklama
@act.block_submit
Gönderimi engeller ve tablo kaydetme aşamasında bir hata mesajı görüntüler. Kullanım:
@act.block_submit 'Engelleme nedeni'.@act.show_warning
Tablo kaydetme aşamasında kullanılır. Gönderimi engellemeden bir uyarı mesajı görüntüler. Kullanım:
@act.show_warning 'Uyarı içeriği'.@act.mark_middle_risk
Risk belirleme aşamasında kullanılır. Değişikliği orta risk olarak işaretler. Kullanım:
@act.mark_middle_risk 'Neden'.@act.mark_high_risk
Risk belirleme aşamasında kullanılır. Değişikliği yüksek risk olarak işaretler. Kullanım:
@act.mark_high_risk 'Neden'.@act.forbid_submit_publish
Onay süreci yapılandırma aşamasında kullanılır. Değişikliğin yürütülmesini engeller. Kullanım:
@act.forbid_submit_publish 'Neden'.@act.do_not_approve
Bir onay şablonunun ID'sini belirtir. Daha fazla bilgi için bkz. Onay sürecini ayarlama.
@act.choose_approve_template
@act.choose_approve_template_with_reason
Şablon kitaplığı
Güvenlik Kuralları, doğrudan etkinleştirebileceğiniz veya etkinleştirmeden önce değiştirebileceğiniz çok sayıda kural şablonu sağlar. Aşağıdaki tabloda schema change için şablonlar listelenmiştir.
|
Kontrol Noktası |
Şablon |
|
Save and Edit - Check Table Header |
Yeni bir tablo için tablo adı olarak anahtar kelimelerin kullanılmasını yasakla |
|
Yeni bir tablo için ad uzunluğunu sınırla |
|
|
Yeni bir tablo için açıklamaları zorunlu kıl |
|
|
Yeni bir tablonun adının küçük harfle yazılmasını zorunlu kıl |
|
|
Yeni bir tablo için birincil anahtar (PK) gerektir |
|
|
Yeni bir tablo için benzersiz anahtar (PK/UK) gerektir |
|
|
Dizin sayısını kontrol et ve sayı aşırı olduğunda kullanıcıyı uyar |
|
|
Yeni bir tablo için belirli alanların var olup olmadığını kontrol et |
|
|
Save and Edit - Check Field |
Yeni bir alan için alan adı olarak anahtar kelimelerin kullanılmasını yasakla |
|
Yeni bir alan için açıklamaları zorunlu kıl |
|
|
Yeni bir alanın adı için büyük/küçük harf duyarlılığını belirt |
|
|
Mevcut bir tabloya null olmayan bir alan eklerken varsayılan bir değer gerektir |
|
|
Mevcut bir alanı null olabilir durumdan null olamaz duruma değiştirirken varsayılan bir değer gerektir |
|
|
Yeni bir birincil anahtar alanının tamsayı türünde olmasını gerektir |
|
|
Yeni bir tablodaki tüm alanların null olamaz olmasını gerektir |
|
|
CHAR türündeki yeni bir alanın uzunluğunu sınırla |
|
|
VARCHAR türündeki yeni bir alanın uzunluğunu sınırla |
|
|
Save and Edit - Check Index |
Yeni bir dizin için dizin adı olarak anahtar kelimelerin kullanılmasını yasakla |
|
Yeni bir dizinin adı için büyük/küçük harf duyarlılığını belirt |
|
|
Yeni bir UNIQUE dizin için ad formatını sınırla |
|
|
Yeni bir NORMAL dizin için ad formatını sınırla |
|
|
Yeni bir FULLTEXT dizin için ad formatını sınırla |
|
|
Yeni bir SPATIAL dizin için ad formatını sınırla |
|
|
Yeni birincil anahtar alanlarının sayısını sınırla |
|
|
Yeni dizin alanlarının sayısını sınırla |
|
|
Control Risks of Creating Tables |
Mantıksal bir tablo için parça sayısını kontrol et |
|
Bir tablonun birincil anahtarını kontrol et |
|
|
Bir tablodaki toplam dizin sayısını kontrol et |
|
|
Control Risks of Modifying Fields |
Alan silmeyi kontrol et |
|
Yeni bir alanın veri türünü kontrol et |
|
|
Alan yeniden adlandırmayı kontrol et |
|
|
Bir alan veri türünün değiştirilmesini kontrol et |
|
|
Control Risks of Modifying Indexes |
Birincil anahtar silmeyi kontrol et |
|
Dizin silmeyi kontrol et |
|
|
Birincil anahtardan dizine geçişi kontrol et |
|
|
Birincil anahtardaki sütunlardaki değişiklikleri kontrol et |
|
|
Ortak bir dizinin değiştirilmesini kontrol et |
|
|
Yeni bir dizinin türünü kontrol et |
|
|
Control Risks of SQL Executions |
Çekirdek örneklerin risklerini kontrol et |
|
Bir tablonun depolama motorunu kontrol et |
|
|
Tablo kilitleme veya büyük tablo şema değişikliklerinin risklerini kontrol et |
|
|
Approval Rule Check |
Bir veritabanına herhangi bir DDL değişikliğinin uygulanmasını yasakla |
|
Bir üretim veritabanına herhangi bir DDL değişikliğinin uygulanmasını yasakla |
|
|
Bir test veritabanı için onay gerektirmeyen DDL değişikliklerini yapılandır |
|
|
Üretim ortamı için risk düzeylerine göre onay kuralları ayarla |
Varsayılan onay şablonunu değiştirme
DMS 5.0 adresinde oturum açın.
-
Sol üst köşedeki
simgesinin üzerine gelin ve seçeneklerini belirleyin.NotDMS konsolunu normal modda kullanıyorsanız üst gezinme çubuğundan seçeneklerini belirleyin.
Security Rules sayfasında hedef kural kümesini bulun ve Actions sütununda Edit öğesine tıklayın.
Details sayfasının sol gezinme bölmesinde Schema Design öğesine tıklayın.
Schema Design sekmesinde Basic Configurations öğesine tıklayın.
Default Approval Template for Schema Design öğesini bulun ve Actions sütununda Edit öğesine tıklayın.
Edit Configuration Item iletişim kutusunda Switch Approval Template öğesine tıklayın.
-
Template Name bilgisine göre hedef şablonu bulun ve Actions sütununda Select öğesine tıklayın.
NotBiletlerin onay sürecini atlamasına izin vermek için Reset to No Approval öğesine de tıklayabilirsiniz.
Submit öğesine tıklayın.
Yeni kural ekleme
DMS 5.0 adresinde oturum açın.
-
Sol üst köşedeki
simgesinin üzerine gelin ve seçeneklerini belirleyin.NotDMS konsolunu normal modda kullanıyorsanız üst gezinme çubuğundan seçeneklerini belirleyin.
Security Rules sayfasında hedef kural kümesini bulun ve Actions sütununda Edit öğesine tıklayın.
Details sayfasının sol gezinme bölmesinde Schema Design öğesine tıklayın.
Schema Design sekmesinde Actions öğesinin sağındaki Add Rule öğesine tıklayın.
-
Add Rule - Schema Design iletişim kutusunda aşağıdaki parametreleri yapılandırın.
Parametre
Açıklama
Checkpoint (Gerekli)
Yeni kural için bir kontrol noktası seçin. Şema tasarımı birden fazla kontrol noktası sağlar. Daha fazla bilgi için bkz. Kontrol noktaları.
Template Library (İsteğe bağlı)
Şablon kitaplığı birçok kural şablonu sağlar. Bir Checkpoint seçtikten sonra Template Library içinden bir kural şablonu yükleyebilirsiniz. Kullanılabilir şablonların listesi için bkz. Şablon kitaplığı.
Rule Name (Gerekli)
Kural için özel bir ad. Template Library içinden bir kural şablonu seçerseniz bu alan otomatik olarak doldurulur.
Rule DSL (Gerekli)
Kural DSL'sini girin. DSL sözdizimi hakkında daha fazla bilgi için belgelere bakın. (Template Library içinde bir kural şablonu seçerseniz bu alan otomatik olarak doldurulur.) Submit öğesine tıklayın.
Varsayılan olarak yeni kural Disabled durumundadır. Kuralı bulun ve Actions sütununda Enable öğesine tıklayın.
Görüntülenen iletişim kutusunda OK öğesine tıklayın.