Ana içeriğe geç

Veri Depoları

Sistem Yönetimi'nde Veri Depoları'nı kullanarak birden çok alanadında erişilebilen paylaşılan ilişkisel veri depoları tanımlayın.

Şurayı açın: Operations → Data Stores.

Bu sayfa, normal işlemler için her alanadının kendi varsayılan deposunu kullanmaya devam etmesi, aynı zamanda alanadları arası veya merkezi veri senaryoları için bir ya da daha fazla paylaşılan depoyu kullanıma açması gereken çözümlerde kullanılır.

Uygulamada bu paylaşılan depo modeli, geçerli kiracının varsayılan deposu dışındaki ilişkisel verilere denetimli erişim gerektiren kiracılar arası süreçler geliştirirken özellikle yararlıdır.

Varsayılan Alanadı Deposu Davranışı

Emakin, her alanadı (kiracı) için otomatik olarak ilişkisel bir veri deposu oluşturur.

Otomatik oluşturulan depo, alanadıyla aynı adı kullanır. Normal veritabanı işlemlerinde hedef depo belirtilmezse Emakin geçerli alanadının kendi veri deposunu kullanır.

Bu, varsayılan davranışın kiracı kapsamlı olduğu anlamına gelir:

  • her alanadı kendi deposuyla çalışır
  • veritabanı komut dizilerinin, alanadı içindeki normal erişim için depo belirtmesi gerekmez
  • depo parametresini belirtmemek, sorguyu geçerli alanadının veritabanında tutar

Örneğin aşağıdaki çağrı, geçerli alanadının varsayılan veri deposunu kullanır:

1
var table = $Database.GetData('HR', 'Groups', 'Id', userId);

Aynı durum, boş bir depo değeri açıkça iletildiğinde de geçerlidir:

1
var table = $Database.GetData('', 'HR', 'Groups', 'Id', userId);

Paylaşılan Veri Depoları

Sistem Yönetimi, tek bir kiracının varsayılan deposuna bağlı olmayan paylaşılan veri depoları da tanımlayabilir.

Bu paylaşılan depolar, geliştiricilerin geçerli alanadının kendi deposu dışındaki ilişkisel verileri sorgulaması veya yönetmesi gereken durumlar için tasarlanmıştır. Yaygın kullanım alanlarından biri, süreç mantığının kiracı sınırları boyunca paylaşılan ilişkisel verileri denetimli biçimde okuması veya yazması gereken kiracılar arası süreç geliştirmedir.

Paylaşılan bir depo oluşturulduktan sonra geliştiriciler, depo adını şu nesneye ileterek komut dizilerinden bu depoya erişebilir: $Database nesnesi.

Sistem Yönetimi'nde Paylaşılan Depolar Oluşturma

Sistem Yönetimi'ndeki Veri Depoları sayfası, yöneticilerin paylaşılan bir depoyu kaydetmesine olanak tanır.

Paylaşılan depo tanımı şunları içerir:

  • paylaşılan veri deposu adı
  • örnek süreç tanımı XML'i

Süreç tanımı XML'i, seçilen paylaşılan depoda gerekli ilişkisel yapıyı oluşturmak için kullanılır. Böylece yöneticiler, süreç tanımını temel alarak paylaşılan veritabanı için şemaları ve tabloları başlangıçta oluşturabilir.

Paylaşılan depo oluşturulduktan sonra geliştiriciler, komut dizilerinden bu depoyu açıkça şu öğe aracılığıyla hedefleyebilir: $Database.

Komut Dizilerinde Başka Bir Depoya Geçiş

Geliştiriciler, geçerli alanadının varsayılan deposunu kullanabilir veya açıkça başka bir depoya geçebilir.

Varsayılan depo kullanımı:

1
GetData(schema, table, column, value)

Açıkça belirtilen depo kullanımı:

1
GetData(store, schema, table, column, value)

Örnek:

1
var table = $Database.GetData('PS_Reporting', 'HR', 'Groups', 'Id', userId);

Bu örnekte sorgu, geçerli alanadının varsayılan deposunda çalışmaz. adlı paylaşılan depoda çalışır: PS_Reporting.

Adlandırma ve Güvenlik Kuralları

Adlandırılmış paylaşılan depolar şu önekle başlamalıdır: PS_ önek.

Bu önek, paylaşılan depolara bilinçli erişim için bir güvenlik sınırı oluşturur. Açıkça paylaşılan depoları normal alanadı depolarından ayırmaya yardımcı olur ve yanlış veritabanına adını kullanarak yanlışlıkla geçme riskini azaltır.

Şu PS_ önekini, ana bilgisayar düzeyindeki tüm paylaşılan depo tanımlarında ve adlandırılmış bir paylaşılan depoyu hedefleyen tüm komut dizisi örneklerinde tutarlı biçimde kullanın.

GUID Tabanlı Erişim ve Güvenlik Etkileri

Şu store parametre yalnızca paylaşılan depo adlarıyla sınırlı değildir. Parametreye bir veri deposu GUID'i de verilebilir.

Bir GUID sağlandığında adlandırılmış depo doğrulaması uygulanmaz. Başka bir deyişle, PS_ önek kuralı adla erişimde denetlenir, ancak doğrudan GUID erişiminde denetlenmez.

Bunun önemli bir güvenlik sonucu vardır: GUID tabanlı erişim, başka kiracılara ait depolar da dahil olmak üzere herhangi bir veri deposunu doğrudan hedefleyebilir.

Bu tür erişim kullanıldığında sorgular, kiracıya özel iç şemalar da dahil olmak üzere hedef depodaki herhangi bir şema üzerinde çalışabilir; örneğin: HR.

GUID tabanlı depo erişimini gelişmiş bir özellik olarak değerlendirin ve yalnızca bu davranış açıkça amaçlandığında kullanın. Adlandırılmış paylaşılan depo erişiminin aksine GUID tabanlı erişim, şu kuralla sınırlandırılmaz: PS_ adlandırma kuralı.