Sahiplik Chains

Birden çok veritabanı nesnesi birbirine sıralı olarak eriştiğinizde, sıra olarak bilinen bir zinciri.Böyle zincirlerini bağımsız olarak mevcut olsa da, SQL Server bir zincir bağlantılar erişir SQL Server kendisini oluşturan nesnelerin izinlerini ayrı ayrı nesnelere erişmek gösterdiği düğmelerden farklı şekilde değerlendirir.Bu farklar güvenliğini yönetmek için önemli sonuçları vardır.

Sahiplik zincirleme bir görünümü gibi bir nesne üzerindeki izinleri ayarlayarak birden çok tablo gibi birden çok nesne erişimi yönetme sağlar.Sahiplik zincirleme bir izin ver izin denetimleri atlama senaryolarında hafif performans avantajı sunar.

İzinleri bir zincir nasıl denetlenir

Bir nesneyi bir zinciri erişildiğinde SQL Server önce sahibini için nesnenin sahibi karşılaştırırarayan bir nesneyi. Bu zincirdeki önceki bağlantısıdır.Her iki nesnenin sahibi aynı olan, başvurulan nesne izinlerini değerlendirilmez.

Örnek sahipliği zincirleme

Aşağıdaki resimde, July2003 görünüm Mary tarafından sahip olunan.Gönül görünüm izinleri Alex verildi.HE Bu örnek veritabanı nesneleri üzerinde diğer izinleri vardır.Alex görünümü seçer ne olur?

Sahiplik zincirlemesi diyagramı

  1. Alex executes SELECT * on the July2003 view.SQL Server checks permissions on the view and confirms that Alex has permission to select on it.

  2. The July2003 view requires information from the SalesXZ view.SQL Server checks the ownership of the SalesXZ view.Bu görünüm aynı sahip olduğundan (Mary), izinleri üzerinde çağıran görünüm olarak SalesXZ kontrol edilir.Gerekli bilgileri verir.

  3. The SalesXZ view requires information from the InvoicesXZ view.SQL Server checks the ownership of the InvoicesXZ view.Bu görünüm aynı sahibi izinleri önceki nesne olarak olduğundan InvoicesXZ kontrol edilir.Gerekli bilgileri verir.Bu noktaya sıradaki tüm öğeleri bir sahibi olmuş (Mary).Bu olarak bilinen bir kesintisiz sahiplik zinciri.

  4. The InvoicesXZ view requires information from the AcctAgeXZ view.SQL Server checks the ownership of the AcctAgeXZ view.Bu görünüm sahibi önceki Nesne sahibinden değiştiğinden (Samyerine Mary), bu görünüm izinleri hakkında tam bilgi alınır.If the AcctAgeXZ view has permissions that enable access by Alex, information will be returned.

  5. The AcctAgeXZ view requires information from the ExpenseXZ table.SQL Server checks the ownership of the ExpenseXZ table.Önceki Nesne sahibinden bu tablonun sahibi farklıdır çünkü (ALi, yok Sam), bu tablo izinleri hakkında tam bilgi alınır.If the ExpenseXZ table has permissions that enable access by Alex, information is returned.

  6. Zaman July2003 görünüm çalışır bilgilerini almak ProjectionsXZ tablo, sunucu veritabanları arası zincirleme arasında etkin olup olmadığını görmek için denetler veritabanı 1 ve veritabanı 2.Veritabanları Arası Zincirleme etkinse, sunucu sahipliğini denetleyecek ProjectionsXZ tablo.Bu tablo aynı sahibi arayan görünüm olarak sahip olduğu (Mary), bu tablo izinleri denetlenir.İstenen bilgileri döndürülür.

Veritabanları arası sahiplik zincirleme

SQL ServerBelirli veritabanları arasında ya da tek örnek içindeki tüm veritabanları üzerinde sahiplik zincirleme izin verecek şekilde yapılandırılmış SQL Server.Veritabanları arası sahiplik zincirleme varsayılan olarak devre dışıdır ve özellikle gerekli olmadığı sürece etkin değil.

Olası tehditler

Sahiplik zincirleme bir veritabanı izinleri yönetme içinde çok kullanışlıdır, ancak nesne sahipleri her karar bir güvenliği sağlanabilir üzerinde izni vermek için tam sonuçlarını tahmin varsayalım.Mary yukarıdaki çizimde en alttaki nesne sahibi Temmuz 2003 görünümü.Ayşe Gönül diğer kullanıcılar için sahibi olduğu nesneleri alma hakkı olduğundan SQL Server davranır gibi rağmen her Mary bir zincirdeki ilk görünümüne erişim verir Gönül yapılan Maliyet bilincine sahip bir karar görünümleri paylaşmak ve bu tablo başvuruları.Gerçek Hayatta, bu geçerli bir varsayım olmayabilir.Daha karmaşık bir şekilde üretim veritabanları ve bunlara erişimi nadiren düzenleyen izinleri onları kullanan kuruluşların yönetim yapıları için mükemmel bir şekilde eşleştirmek.

Yüksek ayrıcalıklı veritabanı rolleri üyeleri kendi için dış veritabanlarındaki nesnelere erişim veritabanları arası sahiplik zinciri kullanabilirsiniz anlamanız gerekir.Örneğin veritabanı arasında veritabanları arası sahiplik zinciri etkinleştirilirse, a ve veritabanı b, üye db_owner sabit veritabanı rolü veritabanı ya da diğer veritabanı kendi şekilde sızmasına.Basit bir işlemdir: Diane (üye db_owner veritabanında a) kullanıcı oluşturur Stuart veritabanında a.Stuart veritabanında bir kullanıcı olarak zaten b.Diane, sonra bir nesne oluşturur (sahibi Stuart) veritabanında a sahip olduğu herhangi bir nesneyi çağıran Stuart veritabanında b.Arayan ve Aranan nesneleri veritabanında nesne üzerindeki izinleri bir ortak sahip olduğundan b ne zaman Diane Gönül oluşturmuştur nesnesi üzerinden eriştiği denetlenmez.

Ayrıca bkz.

Kavramlar