Share via


Güvenlik ilkeleri'ni anlama

Bir rapor sunucusu tarafından yürütülen her kod bir özel kod erişimi güvenlik ilkesi bir parçası olması gerekir.Bu güvenlik ilkeleri için kanıt eşleyen bir kod grubu oluşan bir küme adlandırılmış izin küme s.Genellikle, kod grubu adlı bir izinle ilişkili küme bu grubu kodu için izin verilen izinleri 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).Aşağıdaki bölümlerde çeşitli kod türleri açıklanmaktadır. Reporting Services ve bunlarla ilişkili ilkesi kuralları.

Rapor sunucusu 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).Kullanarak kod grubu bu derlemeler için tanımlanan StrongNameMembershipConditionKesin adlı derleme'nın için ortak anahtar bilgileri temel alarak bir kanıt sağlayan. Kod grubunu verilen FullTrust izni küme.

rapor sunucusu Uzantıları (oluşturma, veri, teslim ve güvenlik)

Raporu sunucu uzantıları, özel veri teslimi, oluşturma ve işlevselliğini genişletmek için siz veya başka bir üçüncü taraf oluşturduğunuz güvenlik uzantıları olan Reporting Services. Vermeniz gerekir FullTrust ile ilişkili ilke yapılandırma dosyaları bu uzantıları veya derleme kodunaReporting Services bileşen, genişletme. Bir parçası olarak sevk edilen uzantıları Reporting Services rapor sunucusu ortak anahtar imzalanmış ve alma FullTrust izni küme.

Important noteImportant Note:

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

Ilke yapılandırma dosyaları hakkında daha fazla bilgi için Reporting Services, bkz: Reporting Services güvenlik ilkesi dosyalarını kullanma.

Rapor içinde kullanılan ifade.

Satır içi kod deyimlerde ya da yer alan kullanıcı tanımlı yöntem rapor deyimleridir Kod öğesi bir Rapor Tanımlama Dili dosyası.Bu deyimler veren ilke dosyalarında önceden yapılandırılmış bir kod grubu Yürütme izin, varsayılan olarak ayarlanmamıştır.Kod grubu, aşağıdakine benzer:

<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 izin kod çalıştırılmasına izin verir (, ancak korumalı kaynakları kullanmamak için yürütün).Rapor içinde bulunan tüm ifadelerin derlenmiş rapor bir parçası olarak depolanır (derleme "ifadesi ana bilgisayar" olarak adlandırılır) bir derleme içinde derlenir.Rapor yürütüldüğünde, rapor sunucusu ifade ana derlemesi yükler ve ifadeler yürütmek için o derlemeyi çağrıları yapar.Kod grubu, tüm ifade ana bilgisayarları tanımlamak için kullanılan belirli bir anahtar ifade ana birleştirmeler imzalanmıştır.

Deyim, rapor nesne modeli derlemeleri (alan, Parametreler, vb.) başvuru ve basit aritmetik ve dize işlemleri gibi görevleri rapor.Bu basit işlemler gerçekleştiren kod yalnızca gerektirir Yürütme izindir.Varsayılan olarak, kullanıcı tarafından tanımlanan yöntemleri Kod öğe ve özel tüm derlemelere verilenYürütme iznininReporting Services. Bu nedenle, çoğu ifadeler için bir Güvenlik ilke dosyaları değiştirme geçerli yapılandırma gerektirmez.Ifade ana birleştirmeler için ek izinler vermesi için , rapor sunucusu Rapor Tasarımcısı, ilke yapılandırma dosyaları değiştirebilir ve rapor ifadelerini Kod grubu değiştirmek yönetici gerekir.Genel bir ayardır, çünkü ifade ana bilgisayarları için varsayılan izinlerin değiştirilmesi, tüm raporları etkiler.Bu nedenle, özel bir derleme ek güvenlik gerektiren tüm kod yerleştirmek önemle önerilir.Bu derleme, gereken izinleri verilir.

Security noteSecurity Note:

Dış birleştirmeler çağıran veya kaynakları korunan kod, raporlarda kullanmak için özel bir derleme içine alınabilir.Böylece, istenen ve kodunuz tarafından asserted izinleri üzerinde daha fazla denetim sağlar.Yöntemlerini güvenli çağrıları saklamalıdır Kod öğesi.Böylece vermek gerekir FullTrust ifade ana rapor ve tüm özel kod tam erişim için CLR verir.

Uyarı

Izni vermeyin FullTrust rapor ifade bir ana bilgisayara ilişkin Kod grubuna.Bunu yaparsanız, korumalı bir sistem çağrıları yapmak, tüm rapor ifadeleri etkinleştir.

Raporları başvuru özel birleştirmeler

Bazı rapor ifadeler olarak da bilinir, üçüncü taraf kod derlemeler çağırabilir Reporting Services Özel derlemeleri. rapor sunucusu bu derlemeleri en az olmasını bekler. Yürütme izin ilkesini yapılandırma dosyalarında.Varsayılan olarak, birlikte ilke dosyaları Reporting Services verme Yürütme izni tüm derlemelere 'Bilgisayar' bölgeden başlatılıyor.Gerektiğinde özel derlemeler için ek izinler verebilirsiniz.

Bazı durumlarda, bir rapor ifadesinde belirli kod izinleri gerektiren bir işlem gerçekleştirmeye gerekebilir.Genellikle, bu rapor bir ifade (örneğin, bir dosya veya sistem kayıt defterindeki erişir), güvenli bir CLR kitaplığı yöntem çağrısı yapmak gerektiği anlamına gelir.The .NET Framework documentation describes the code permissions that are required to make this secure call; to yürütmek the call, the calling code must be granted these specific, secure permissions. Raporu bir ifadeden arama yaparsanız veya Kod öğesi, ifade ana derlemesi uygun izinlere sahip olmanız gerekir.Ancak, bir kez, ifade ana izinleri vermeniz, herhangi bir rapor herhangi bir deyimdir çalışan tüm kod artık bu belirli izin verilir.Özel bir derlemesinden arama yapıp, özel bir derleme belirli izinleri daha güvenlidir.