Raporlama Servisleri içinde kod erişimi güvenliği

Kod erişim güvenliği merkezlerindeki bu temel kavramlar: bulgu, kod grupları ve adlandırılmış izin kümeleri.De Reporting Services, Rapor Yöneticisi, Rapor Tasarımcısı ve rapor sunucusu bileşenleri her yüklü bir ilke dosyası özel derlemeler olarak için kod erişimi güvenliği yapılandırırveri, teslimat, işleme ve güvenlik uzantıları. Aşağıdaki bölümlerde kod erişimi Güvenliği'ne genel bakış sağlar.For more detailed information about the topics covered in this section, see "Security Policy Model" in the Microsoft .NET Framework SDK documentation.

Reporting Serviceskod erişimi güvenliği kullanır, çünkü, rapor sunucusu yerleşik olsa da ASP.NET teknolojisi, tipik bir arasında önemli bir fark vardır ASP.NET uygulama ve rapor sunucusu.Normal bir ASP.NET uygulama değil yürütmek kullanıcı kodu.Buna karşılık, Reporting Services rapor tanım dosyalarını karşı programlamak kullanıcılara izin veren bir açık ve Genişletilebilir bir mimari kullanır kod öğesinin Rapor Tanımlama Dili ve raporlarda kullanmak üzere özel bir derleme özelleştirilmiş işlevselliği geliştirmek için.Üstelik, geliştiricilerin tasarlayabilirsiniz ve dağıtmak rapor sunucusu yeteneklerini geliştiren güçlü uzantıları.Bu güç ve esneklik gelir kadar koruma ve güvenlik mümkün olduğunca sağlamak gerek.

Reporting ServicesGeliştiriciler kullanarak herhangi .NET Framework derleme kendi raporlarını ve yerel olarak tüm birleştirmeleri genel derleme önbelleği dağıtılan işlevselliği üzerine çağrırapor sunucusu kontrol edebilirsiniz tek şey rapor ifadeler için hangi izinlerin verilmiş olduğunu ve özel derlemeler yüklenir.De Reporting Services, özel montaj almak Execute-yalnızca varsayılan izinleri.

Kanıt

Kanıt, ortak dil çalışma zamanı (clr) kod derlemeler için bir güvenlik ilkesini belirlemek için kullandığı bilgidir.Kanıt için çalışma zamanı kod belirli bir özelliğe sahip olduğunu gösterir.Kanıt, ortak formlar, dijital imzalar ve derleme konumunu içerir.Kanıt da uygulama için anlamlı olan diğer bilgileri göstermek için tasarlanmış özel olabilir.

Derlemeler hem de uygulama etki alanlarını göre kanıt üzerinde izinleri alır.Örneğin, bir derleme konumunu, Reporting Services deniyor access, zayıf adlı derlemeleri. kanıt, ortak bir formBu url kanıt bilinir.Bir rapor sunucusu dağıtılmış özel veri işleme uzantısı için url kanıt "C:\Program files\microsoft sql Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll" olabilir.Kesin ad veya derleme dijital imzayı başka bir ortak bulgu biçimidir.Bu durum, kanıt ortak anahtar derleme bilgilerdir.

Kod grubu

Kod grubu olan bir mantıksal gruplandırma üyelik için bir koşul olan kod.Üyelik koşulu karşılayan herhangi bir kod, grubun içinde yer alır.Yöneticiler, kod grupları ve bunların ilişkili izin kümeleri yöneterek bir güvenlik ilkesi yapılandırın.

Kod grubu üyeliği koşulunu kanıt üzerinde temel alır.Örneğin, bir kod grubu için bir url üyeliği url kanıt üzerinde temel alır.Ortak dil çalışma zamanı (clr) url kanıt gibi tanımlayıcı özellikleri kodunu açıklayın ve grubun üyelik koşulu karşılanıp belirlemek için kullanır.Örneğin, kod grubu üyeliği koşulunu "C:\Program Files\Microsoft sql Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll derleme kodunda" ise, çalışma zamanı kanıt kod o konumdan kaynaklı olup olmadığını belirlemek için inceler.Bu tür bir kod grubu için bir yapılandırma girişi örneği aşağıdaki gibi görünebilir:

<CodeGroup class="UnionCodeGroup"
   version="1"
   PermissionSetName="FullTrust"
   Name="MyCodeGroup"
   Description="Code group for my data processing extension">
      <IMembershipCondition class="UrlMembershipCondition"
         version="1"
         Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.FsiDataExtension.dll"
       />
</CodeGroup>

Kendi özel derlemeler sistem yöneticinize veya uygulama dağıtımınızı ile türü kod erişimi güvenliği ve kod grupları belirlemek için Uzman çalışması gerekir veya Reporting Services etkisi.

Adlandırılmış izin kümeleri

Adlandırılmış izin küme olan bir küme izinlerin Yöneticiler bir kod grubu ile ilişkilendirebilirsiniz.Adlandırılmış izin kümeleri en az bir izin, bir ad ve açıklama için izin küme oluşur.Yöneticiler adlandırılmış izin kümeleri oluşturmak veya kod grupları için Güvenlik İlkesi'ni değiştirmek için kullanabilirsiniz.Birden fazla kod grubu aynı adlı izniyle ilişkili olabilir küme.clr yerleşik adlandırılmış izin kümeleri sağlar; Bunlar arasında hiçbir şey, yürütme, Internet, LocalIntranet, herşeyi, ve FullTrust.

Not

Özel veri, teslimat, işleme ve güvenlik uzantıları Reporting Services altında çalışması gerekir FullTrust izin küme.Çalışmak için uygun kod grubu ve üyelik koşulları eklemek için sistem yöneticinizle birlikte sizin Reporting Services uzantıları.

Kendi özel için izin düzeyleri raporlarıyla kullanılan özel derlemeler ilişkilendirebilirsiniz.Örneğin, belirli bir dosyaya erişmek bir derleme izin vermek istiyorsanız, belirli dosya g/Ç erişim yeni adlandırılmış izin kümesini oluşturun ve sonra kod grubunuzun küme izni atayın.Aşağıdaki izin küme MyFile.xml dosya için salt okunur erişim verir:

<PermissionSet class="NamedPermissionSet"
   version="1"
   Name="MyNewFilePermissionSet"
   Description="A special permission set that grants read access to my file.">
    <IPermission class="FileIOPermission"
       version="1"
       Read="C:\MyFile.xml"/>
    <IPermission class="SecurityPermission"
       version="1"
       Flags="Assertion, Execution"/>
</PermissionSet>

Bu izin küme vermek bir kod grubu aşağıdaki gibi görünebilir:

<CodeGroup class="UnionCodeGroup"
   version="1"
   PermissionSetName="MyNewFilePermissionSet"
   Name="MyNewCodeGroup"
   Description="A special code group for my custom assembly.">
   <IMembershipCondition class="UrlMembershipCondition"
      version="1"
      Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\MyCustomAssembly.dll"/>
</CodeGroup>