Güvenlik ilkelerini anlama

SQL Server 2008 R2 için, bu konuda listelenen içerikte değişiklik yapılmamıştır.

Rapor sunucusu tarafından yürütülen herhangi bir kod belirli bir parçası olması kod erişimi güvenliği ilkesi.Adlandırılmış izin kümeleri küme için kanıt eşleme kod grupları bu güvenlik ilkelerini oluşur.Kod grubu genellikle, adlandırılmış bir izinle bağlantılı küme kodu için izin verilen izinler o grubun belirtir.The runtime uses evidence provided by a trusted host or by the loader to determine which code groups the code belongs to and, therefore, which permissions to grant the code.Reporting Services adheres to this security policy architecture as defined by the Microsoft .NET Framework common language runtime (CLR).Çeşitli kod içinde aşağıdaki bölümlerde açıklanmıştır Reporting Services ve bunlarla ilişkili ilke kuralları.

Rapor Server birleştirmeler

Report server assemblies are those that contain code that is part of the Reporting Services product.Reporting Services is written using managed code assemblies; all of these assemblies are strong-named (that is, digitally signed).Bu birleştirmeler için kod grupları kullanılarak tanımlanır StrongNameMembershipCondition, ortak anahtar bilgi için temel kanıt sağlar derleme's kesin ad.Kod grubu verilen FullTrust izin küme.

Rapor Server Extensions (oluşturma, veri, teslim ve güvenlik)

Rapor sunucu uzantıları olan size veya diğer üçüncü tarafların işlevselliğini genişletmek için oluşturduğunuz özel veri, teslimat, işleme ve güvenlik uzantıları Reporting Services.Vermeniz gerekir FullTrust için bu ilke yapılandırma dosyalarında uzantıları veya derleme kod ilişkili Reporting Services bileşeni genişletme.Uzantıları bir parçası olarak sevk edilen Reporting Services rapor sunucusu ortak anahtar ile imzalanmış ve almak FullTrust izin küme.

Önemli notÖnemli

Değiştirmeniz gereken Reporting Services izin vermek için ilke yapılandırma dosyaları FullTrust herhangi bir üçüncü taraf uzantıları.Bir kod grubu ile eklerseniz, FullTrust özel uzantıları için rapor sunucusu tarafından kullanılmayacak.

İlke yapılandırma dosyaları hakkında daha fazla bilgi için Reporting Services, bkz: Raporlama Hizmetleri Güvenlik İlkesi dosyalarını kullanma.

Raporlarda kullanılan ifadeler

Raporu ifadeleri olan satır içi kod deyimleri veya kullanıcı tanımlı yöntemleri içinde yer alan kod öğesi bir rapor tanımı dil dosyası.Bu ifadeler veren ilke dosyaları önceden yapılandırılmış bir kod grubu yok yürütme izin küme varsayılan olarak.Kod grubu aşağıdaki gibi görünür:

<CodeGroup
   class="UnionCodeGroup"
   version="1"
   PermissionSetName="Execution"
   Name="Report_Expressions_Default_Permissions"
   Description="This code group grants default permissions for code in report expressions and Code element. ">
    <IMembershipCondition
       class="StrongNameMembershipCondition"
       version="1"
       PublicKeyBlob="002400..."
    />
</CodeGroup>

yürütmek kod çalıştırılmasına izin verir (korumalı kaynakları kullanmak değil ancak yürütmek,).Tüm ifades bir rapor içinde bulunan bir derleme derlenmiş (adı verilen bir "ifade ana bilgisayar" derleme) derlenmiş raporu bir parçası olarak depolanır.Rapor sunucusu raporu çalıştırıldığında yükler ifade ana derlemesi ve deyimleri yürütmek için derlemenin çağrıları yapar.Kod grubu tüm ifade ana bilgisayarları tanımlamak için kullanılan belirli bir anahtar ifade ana bilgisayar derleme imzalanmıştır.

Raporu ifadeleri rapor nesne modeli toplulukları (alanlar, Parametreler, vb.) başvuru ve aritmetik ve dize işlemleri gibi basit görevleri gerçekleştirebilirsiniz.Sadece bu basit işlemi gerçekleştiren kod gerektirir yürütme izni.Varsayılan olarak, kullanıcı tarafından tanımlanan yöntemleri kod öğesi ve tüm özel derlemeler verilen yürütme izin Reporting Services.Bu nedenle, çoğu ifadeler için herhangi bir güvenlik ilkesi dosyaları değiştirme geçerli yapılandırma gerektirmez.Ek izinleri atamak için ifade ana birleştirmeler, yönetici rapor sunucusu ve Rapor Tasarımcısı ilke yapılandırma dosyaları değiştirebilir ve raporu değiştirmek için gereksinim duyduğu ifades kod grubu.ifade ana bilgisayarları için varsayılan izinleri değiştirme, genel bir ayar olduğundan, tüm raporları etkiler.Bu nedenle, özel bir derleme içine ek güvenlik gerektiren tüm kodu koyun önerilir.Bu derleme, gereken izinleri verilir.

Güvenlik notuGüvenlik Notu

Dış birleştirmeler çağıran veya korumalı kaynaklara kod raporlarda kullanmak üzere özel bir derleme içine Incorporated.Böylece istenen ve kodunuz tarafından garantilenen izinleri üzerinde daha fazla denetim olanağı verir.Yöntemleri içinde güvenli aramalarda kod öğesi.Bunu yapmak vermek için gerektirir FullTrust raporuna ifade barındırabilir ve tüm özel kod tam erişim için clr verir.

Dikkat notuDikkat

Vermek FullTrust bir rapor ifade ana kod grubu için.Bunu yaparsanız, korunan sistem çağrıları yapmak tüm rapor ifadeleri etkinleştir.

Özel Assemblies raporlar başvurulan

Bazı rapor ifadeler olarak da bilinen üçüncü taraf kod derlemeleri çağırabilir Reporting Services gibi özel assemblies.Rapor sunucusu bu derlemeler en az olmasını bekler yürütme ilke yapılandırma dosyalarında izin.Varsayılan olarak, ilke dosyaları ile ilgili sevk Reporting Services vermek yürütme 'Bilgisayarım'dan ' başlayarak tüm derlemelere izin bölge.Gerektiği gibi özel assemblies için ek izinler verebilirsiniz.

Bazı durumlarda, bir rapordaki belirli bir kod izinleri gerektiren bir işlem gerçekleştirmeniz gereken ifade.Tipik olarak, bu rapor ifade güvenli bir clr kitaplık için arama yapmak gerektiği anlamına gelir yöntem (gibi bir dosya veya sistem kayıt defteri erişen).The .NET Framework documentation describes the code permissions that are required to make this secure call; to execute the call, the calling code must be granted these specific, secure permissions.Bir rapordaki arama yaparsanız ifade veya kod öğesi, ifade ana derlemesi uygun izinleri verilmelidir.Ancak, ifade ana izinleri sonra herhangi bir rapor içindeki herhangi bir ifade içinde çalışan tüm kod şimdi belirli bir izin verilir.Özel derlemesinden arama yapmak ve bu özel derleme belirli izinler vermek için çok daha güvenlidir.