Aracılığıyla paylaş


clr tümleştirme kod erişimi güvenliği

Ortak dil çalışma zamanı (clr) kod erişim güvenliği için yönetilen kod adı verilen bir güvenlik modelini destekler. Bu modelde, kod kimliğini alarak birleştirmeler izinler verilir. Daha fazla bilgi için bkz: "Kod erişimi güvenliği" bölüm içinde .NET Framework software development kit.

Güvenlik İlkesi derlemeler için verilen izinleri belirleyen üç farklı yerlerde tanımlanır:

  • Makine ilkesi: Bu ilkesinin geçerli makine üzerinde çalışan tüm yönetilen kodun olduğu SQL Serveryüklenir.

  • Kullanıcı İlkesi: Bu etkin bir işlem tarafından barındırılan yönetilen kodun bir ilkedir. İçin SQL Server, kullanıcı ilkesini belirli olan Windows hesabına SQL Serverhizmeti.

  • Ana İlkesi: clr ana bilgisayar tarafından ayarlanan ilke budur (Bu durumda SQL Server) yani etkin yönetilen kodun içinde barındıran çalışıyor.

clr tarafından desteklenen kod erişim güvenliği mekanizması, çalışma zamanı tam güvenilir ve kısmen güvenilen kod barındırabilir varsayımına dayanır. clr kod erişim güvenliği tarafından korunan kaynakları genellikle gerektirir yönetilen uygulama programlama arabirimleri tarafından sarılmışkaynağa erişmesine izin vermeden önce karşılık gelen izni. Talepiçin izin (derleme düzeyinde) tüm arayanlar çağrı yığını içinde karşılık gelen kaynak izni varsa memnun.

Verilen kod erişimi güvenlik izinleri kümesi yönetilen kod içinde çalışırken SQL Servertarafından yukarıdaki üç ilke düzeyi izinler kümesi kavşak. Bile SQL Serveryüklendi derleme izin kümesi verir SQL Server, nihai kullanıcı kodu için verilen izinler kümesi sınırlı daha fazla kullanıcı ve makine düzeyindeki ilkeler olabilir.

SQL Server ana ilke düzeyinde izin kümeleri

Meclisleri tarafından verilen kod erişimi güvenlik izinleri kümesi SQL Serverana ilke düzeyi Derleme oluşturulurken belirtilen ayarlama izni tarafından belirlenir. Üç izin kümesi vardır: SAFE, EXTERNAL_ACCESSve UNSAFE(belirtilen kullanarak PERMISSION_SET seçeneği Derleme (Transact-sql) oluştur).

SQL Serverbir ana bilgisayar düzeyinde güvenlik ilke düzeyine clr ev sahipliği yaparken temini; Bu ilke, her zaman etkin olan iki ilke seviyenin altında ek güvenlik düzeyidir. Bu ilke tarafından oluşturulan her uygulama etki alanı için ayarlanmış SQL Server. Bu ilke geçerli olacak varsayılan uygulama etki alanı için verilmemiştir ne zaman SQL Serverclr bir örneğini oluşturur.

SQL ServerAna bilgisayar düzeyinde ilke birleşimidir SQL Serversabit* *sistem birleştirmelerine ve kullanıcı birleştirmeleri için kullanıcı tarafından belirtilen ilke İlkesi.

clr birleştirmeler için sabit ilke ve SQL Serversistem montajları verir onları tam güven.

Kullanıcı tarafından belirtilen kısmı SQL Serverana İlkesi derleme sahibi üç izni kovalar için her derleme belirtme dayanır. Aşağıda listelenen güvenlik izinleri hakkında daha fazla bilgi için bkz.net Framework sdk.

KASA

Yalnızca iç hesaplama ve yerel veri erişimine izin verilir. SAFEen kısıtlayıcı izin kümesini olduğunu. Bir derleme tarafından çalıştırılan kod SAFEizinleri dosyaları, ağ, ortam değişkenleri veya kayıt defteri gibi dış sistem kaynaklarına erişemiyor.

SAFEderlemeleri aşağıdaki izinler ve değerler vardır:

İzin

Değer / Açıklama

SecurityPermission

Execution:Yönetilen kod yürütme izni.

SqlClientPermission

Context connection = true, context connection = yes: Yalnızca içerik bağlantısı kullanılabilir ve bağlantı dizesi yalnızca değeri belirtebilirsiniz "içerik bağlantısı = true" ya da "içerik bağlantısı = yes".

AllowBlankPassword = false: Boş parolalara izin verilmiyor.

EXTERNAL_ACCESS

external_access derlemeleri ile aynı izinlere sahip SAFE derlemeler, ek dosyaları, ağları, ortam değişkenleri ve kayıt gibi dış sistem kaynaklarına erişim olanağı.

EXTERNAL_ACCESSderlemeler, aşağıdaki izinler ve değerler de vardır:

İzin

Değer / Açıklama

DistributedTransactionPermission

Unrestricted: Dağıtılmış hareketlere izin verilir.

DNSPermission

Unrestricted: Etki alanı adı sunucuları bilgi istemek için izin.

EnvironmentPermission

Unrestricted:Sistem ve kullanıcı ortamı değişkenleri için tam erişim verilir.

EventLogPermission

Administer:Aşağıdaki eylemler kullanılabilir: bir olay kaynağı oluşturma, varolan günlüklerin okuma, olay kaynakları veya günlükleri silme, girişine yanıt, olay günlüğünü Temizleme, olaylarını dinleme ve tüm olay günlüklerini topluluğu erişme.

FileIOPermission

Unrestricted:Dosya ve klasörler için tam erişim verilir.

KeyContainerPermission

Unrestricted:Anahtar kapsayıcılarını için tam erişim verilir.

NetworkInformationPermission

Access:Ping izin verilir.

RegistryPermission

Allows read rights to HKEY_CLASSES_ROOT, HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG, and HKEY_USERS.

SecurityPermission

Assertion:Bu kod tüm arayanlar işlemi için gerekli izniniz iddia yeteneği.

ControlPrincipal:Asıl nesne işleme yeteneği.

Execution:Yönetilen kod yürütme izni.

SerializationFormatter:Seri hale getirme hizmetleri sağlama yeteneği.

SmtpPermission

Access:smtp host portu 25 giden bağlantılara izin verilir.

SocketPermission

Connect:Bir aktarım adresine giden bağlantılara (tüm bağlantı noktaları, tüm iletişim kuralları) izin verilir.

SqlClientPermission

Unrestricted:Veri kaynağı için tam erişim verilir.

StorePermission

Unrestricted:x.509 sertifika depoları için tam erişim verilir.

WebPermission

Connect:Web kaynaklarına giden bağlantılara izin verilir.

GÜVENSİZ

unsafe derlemeler sınırsız erişim, hem içindeki hem de dışındaki kaynaklara olanak SQL Server. Kod içinden yürütülen bir UNSAFEderlemesi de yönetimsiz kod çağrı.

UNSAFEderlemeler verilir FullTrust.

Güvenlik notuGüvenlik Notu

SAFEdışında kaynaklara erişim olmadan hesaplama ve veri yönetimi görevlerini gerçekleştirmek derlemeler için önerilen izni ayardır SQL Server. EXTERNAL_ACCESSdışındaki kaynaklara erişmek birleştirmeleri için tavsiye SQL Server. EXTERNAL_ACCESSderlemeler varsayılan yürütme olarak SQL Serverhizmet hesabı. Mümkün EXTERNAL_ACCESSkod açıkça arayanın Windows kimlik doğrulaması güvenlik kapsamını taklit. Çünkü varsayılan olarak yürütmek için SQL Serverhizmet hesabı, yürütme izni EXTERNAL_ACCESSYalnızca oturumları hizmet hesabı olarak çalışacak şekilde güvenilen verilmelidir. Güvenlik açısından, EXTERNAL_ACCESSve UNSAFEderlemeler özdeş. Ancak, EXTERNAL_ACCESSderlemeler çeşitli güvenilirliği ve sağlamlığı korumaları değil vardır sağlamak UNSAFEderlemeler. Belirtme UNSAFEyasadışı işlemler gerçekleştirmek için derleme kod verir SQL Serveralan, işleyen ve dolayısıyla potansiyel sağlamlık ve ölçeklenebilirliği olumsuz etkileyebilir SQL Server. İçinde clr birleştirmeler oluşturma hakkında daha fazla bilgi için SQL Serverbakın clr tümleştirme Assemblies yönetme.

Dış kaynaklara erişme

Bir kullanıcı tanımlı türü (udt), saklı yordam veya başka türden bir yapı derleme kayıtlıysa SAFEiznini ayarlamak, o zaman yapı içinde yönetilen kod çalıştırma dış kaynaklara erişemiyor. Ancak, ya da, EXTERNAL_ACCESSveya UNSAFEve yönetilen kod dış kaynaklara erişmeye izin kümeleri belirtilen, SQL ServerAşağıdaki kurallar geçerlidir:

Eğer

Sonra

Yürütme içeriği karşılık gelen bir SQL Servergiriş.

Dış kaynaklara erişim girişimleri reddedilir ve güvenlik özel durumu oluşturuldu.

Yürütme içeriği Windows oturumu açma karşılık gelir ve özgün arayan yürütme içeriği olduğunu.

Dış kaynak güvenlik bağlamı altında erişilen SQL Serverhizmet hesabı.

Arayan özgün arayan değildir.

Erişim engellendi ve güvenlik özel durumu oluşturuldu.

Yürütme içeriği Windows oturumu açma karşılık gelir ve özgün arayan yürütme içeriği olan ve özellikleri arayan.

Access arayan güvenlik bağlamını kullanır; hizmet hesabı.

İzin ayarlama özeti

Aşağıdaki grafik kısıtlamaları ve verilen izinler özetler SAFE, EXTERNAL_ACCESS, ve UNSAFEizin kümeleri.

SAFE

EXTERNAL_ACCESS

UNSAFE

Code Access Security Permissions

Yalnızca yürütme

Yürütme + dış kaynaklara erişim

Sınırsız (dahil p/Invoke)

Programming model restrictions

Evet

Evet

Kısıtlama yok

Verifiability requirement

Evet

Evet

Hayır

Local data access

Evet

Evet

Evet

Ability to call native code

Hayır

Hayır

Evet

Ayrıca bkz.

Kavramlar

clr tümleştirme güvenlik

Ana bilgisayar koruması öznitelikleri ve clr tümleştirme programlama

clr tümleştirme programlama modeli kısıtlamaları

clr barındırılan ortamı