Dbo şemaya gelince:
- Veritabanı nesneleri oluştururken dbo şemasını kullanmaktan kaçınmak en iyi yöntem midir?
- Dbo şemasından neden kaçınılmalı ya da bırakılmalıdır?
- Dbo şemasına hangi veritabanı kullanıcısı sahip olmalı?
Dbo şemaya gelince:
Yanıtlar:
Veritabanını kullanan başka kullanıcılarınız olduğunda, şemalara erişimlerini sınırlayabilmek istediğiniz için bu iyi bir uygulama olabilir. Örneğin bir veritabanında aşağıdaki tablolara sahipsiniz.
HR.Payhist
HR.Payscale
HR.Jobdesc
IT.username
IT.useraccesslevel
ENG.jobsite
ENG.trainings
İK yöneticisi HR
olarak şemadaki herhangi bir şeye erişebiliyorum , IT
yönetici olarak çalışanların kullanıcı adlarını ve erişim seviyelerini görebiliyorum. Engineering
Departman Dbo ben zor günler benim veriyi segmentlere ve erişim rolleri sağlayan olurdu bütün tablolar için kümesi şeması ise iş yerleri vs. aktif görebilirsiniz.
Fikir, SQL Server'da farklı bölümler tarafından erişilebilen ve sorgulanabilen bir ürün sunmak olduğuna inanıyorum. Gerçekte sadece DBA'lar / DBDev'ler veritabanına gerçekten erişir ve genellikle yalnızca uygulama verilerini depolar.
Aynı zamanda okunabilirlik ve yönetilebilirlik ile yardımcı olur. İlk bakışta, hangi tablonun hangi verileri tuttuğunu ve verilerin nasıl ayrıldığını kolayca belirleyebilirim.
Şahsen ben şemaları genel bir uygulama olarak tanımlamayı tercih ederim. Şema plan için yunan olduğunu unutmayın, düzenli bir şema yapısına sahip olmanız verileri planlamanıza ve tanımlamanıza yardımcı olur.
Bunun gerçekten teknolojik bir nedeni olmadığı için kullanıcının tercihine bağlı olduğunu düşünüyorum. Aslında, basitlik uğruna, güvenlik gereksinimleriniz başka türlü öngörülmedikçe her zaman dbo kullanın derim. Tabii ki, sadece örgütsel amaçlar için de her zaman yapabilirsiniz.
Bir şey varsa, SQL Server için varsayılan olduğu için dbo'dan kaçınılmalıdır, aynı zamanda hiç açıklayıcı değildir. Diğer tüm varsayılan isimler gibi, önceden bilindiği için bir bilgisayar korsanının hayatını çok daha kolay hale getirir (şema adınızı anlamaya çalıştığınız noktada olsalar bile, muhtemelen zaten bıkmışsınızdır).
Çalıştığım yerde, veritabanını mantıksal bölümlere ayırmak ve şemalara izinler vermek için şemalar kullanıyoruz.
Örneğin, veritabanını içeren bir envanter sistemimiz olabilir. Ana tablolar inv şemasında olabilir. Veritabanına bir şey alırsak, alma sürecinin bir parçası olarak aşamalı bir şema kullanılır. Kullanıcıların erişmesi gerekmeyen herhangi bir sistem saklı yordamımız varsa, bunları bir sp şemasına koyarız.
Daha önce en iyi uygulama değildi, çünkü şemalar SQL 2005'ten önce gizlenmişti, her şey dbo şemaya koyuldu. SQL Server Ekibi en iyi uygulama olduğunu gösteriyor ve bu konuda bir makale yayınladı: SQL Server En İyi Uygulamaları - Veritabanı Nesnesi Şemalarının Uygulanması
Kimin kendisine ait olması gerektiğine ilişkin diğer sorunuzla ilgili olarak: dbo şeması dbo kullanıcı hesabına aittir.