Aracılığıyla paylaş


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

Ortak dil çalışma zamanı (clr) kod erişimi güvenliği için yönetilen kod adı verilen bir güvenlik modelini destekler.Bu modelde, kodunun kimliğine göre derlemeler için izinler verilir.Daha fazla bilgi için bkz: "kod erişimi güvenliği" Bölüm'de..NET Framework Yazılım Geliştirme Seti.

Derlemeler için verilen izinleri belirler güvenlik ilkesi, üç farklı yerlerde tanımlanır:

  • Makine ilkesi: Bu tüm için etkin ilke, yönetilen kod makine üzerinde çalışan SQL Server yüklenir.

  • Kullanıcı İlkesi: Etkin bir işlem tarafından barındırılan yönetilen kod için ilke budur.İçin SQL Server, kullanıcı ilkesi, Windows hesabına belirli SQL Server hizmet olan çalışıyor.

  • Ana bilgisayar ilkesi: Bu ilke, küme clr ana bilgisayar tarafından yukarı (Bu durumda, SQL Server) olan etkin yönetilen kodun çalışan o ana.

clr tarafından desteklenen kod erişimi güvenliği mekanizması, çalışma zamanı tam güvenilir ve kısmen güvenilen kod barındırabilir varsayımına dayanır.The resources that are protected by CLR code access security are typically wrapped by managed application programming interfaces that requirethe corresponding permission before allowing access to the resource.The demandfor the permission is satisfied only if all the callers (at the assembly level) in the call stack have the corresponding resource permission.

Dizi kod erişimi güvenliği için verilen izinleri yönetilen kod içinde çalışırken SQL Server olan kesişimi izinler küme verilen yukarıdaki üç ilke düzeyi.Olsa bile, SQL Server de yüklenen derleme izin küme verir SQL Server, ileride kullanıcı kodu verilen izinler küme kısıtlanabilir daha fazla kullanıcı ve makine -düzey ilkeleri.

sql Server ana ilke düzeyinde izin kümeleri

küme Derlemeler tarafından verilen kod erişimi güvenlik izinleri, SQL Server ana ilke düzey izni tarafından belirlenen küme derleme. oluştururken belirttiğinizÜç izin kümeleri şunlardır: SAFE, EXTERNAL_ACCESS ve UNSAFE (kullanılarak belirtilen PERMISSION_SET seçeneği DERLEME (Transact-sql) oluştur).

SQL Server sağlayan ana bilgisayar -düzey Güvenlik İlkesi düzey ; ev sahipliği yaparken clr için Bu ilke, her zaman etkin olan iki ilke düzey altındaki ek ilke düzeyidir.Bu ilke tarafından oluşturulan her uygulama etki alanı için küme SQL Server.Bu ilke geçerli olacak varsayılan uygulama etki alanı için tasarlanmıştır, SQL Server oluşturur bir örnek clr.

The SQL Server host-level policy is a combination of SQL Server fixed* *policy for system assemblies and user-specified policy for user assemblies.

clr birleştirmeler için sabit ilke ve SQL Server sistem birleştirmelerine bunları verir tam güven.

Kullanıcı tarafından belirtilen kısmı SQL Server ana İlkesi derleme sahibi her derleme üç izni demetleri birini belirterek esasAşağıda listelenen güvenlik izinleri hakkında daha fazla bilgi için bkz.net Framework sdk.

GÜVENLİ

Only internal computation and local data access are allowed.SAFE is the most restrictive permission set.Bir derleme tarafından çalıştırılan kod SAFE izinleri dosyaları, ağ, ortam değişkenleri veya gibi dış sistem kaynaklarına erişemiyorkayıt defteri.

SAFE derleme, aşağıdaki izinler ve değerlere sahip:

İzin

Değer / açıklama

SecurityPermission

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

SqlClientPermission

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

AllowBlankPassword = false: Boş parolalara izin verilmiyor.

PERMİSSİON_SET

Permission_set derleme olarak aynı izinlere sahip SAFE dosyaları, ağları, ortam değişkenleri ve gibi dış sistem kaynaklarına erişmek için ek yeteneği ile birleştirmelerikayıt defteri.

EXTERNAL_ACCESS derleme, aşağıdaki izinler ve değerleri de sahip:

İzin

Değer / açıklama

DistributedTransactionPermission

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

DNSPermission

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

EnvironmentPermission

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

EventLogPermission

Administer:Aşağıdaki eylemleri izin verilir: Olay kaynak oluşturma, varolan günlüklerin okuma, Olay kaynakları veya günlükleri silme, girişlere yanıt, bir olay günlüğünü temizleme, olaylarını dinleme ve erişen bir koleksiyon tüm olay günlüğü.

FileIOPermission

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

KeyContainerPermission

Unrestricted: Anahtar kapsayıcılarını tam erişime izin verilir.

NetworkInformationPermission

Access: Ping işlemi 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 Başlatmalara operasyon için izniniz olduğunu onaylama olanağı.

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

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

SerializationFormatter:Seri hale getirme hizmetleri sağlamak için yeteneği.

SmtpPermission

Access: smtp ana bilgisayar bağlantı noktası 25 için giden bağlantılara izin verilir.

SocketPermission

Connect: Giden bağlantılarda (tüm bağlantı noktaları, tüm iletişim kuralları) Aktarım adresi 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ÜVENLİ OLMAYAN

Güvenli olmayan kaynaklara, hem içindeki hem de dışındaki derlemeler sınırsız erişim sağlar SQL Server.Kod içinden yürütülen bir UNSAFE derleme da yönetilmeyen kod çağırabilir.

UNSAFEderlemeler anda FullTrust.

Güvenlik notuGüvenlik Notu

SAFE is the recommended permission setting for assemblies that perform computation and data management tasks without accessing resources outside SQL Server.EXTERNAL_ACCESS is recommended for assemblies that access resources outside SQL Server.EXTERNAL_ACCESS assemblies by default execute as the SQL Server service account.Olabilir EXTERNAL_ACCESS kod için açıkça taklit arayanın Windows kimlik doğrulaması güvenlik bağlamı.Varsayılan olarak yürütmek için olduğundan SQL Server hizmet hesabı, execute izni EXTERNAL_ACCESS sadece verilmelidir güvenilir olarak çalıştırmak için oturum açma içinhizmet hesabı. Bir güvenlik perspektif, EXTERNAL_ACCESS ve UNSAFE derlemeler birbirinin.Ancak, EXTERNAL_ACCESS birleştirmelerini sağlamak çeşitli güvenilirliği ve sağlamlığı korumaları olan değil, UNSAFE derlemeler.Belirtme UNSAFE karşı yasadışı işlemlerini gerçekleştirmek için derleme kod verir SQL Server alan, işleyen ve bu yüzden potansiyel tehlikeye sağlamlık ve ölçeklenebilirliğini SQL Server.İçinde clr birleştirmeler oluşturma hakkında daha fazla bilgi için SQL Server, bkz: clr tümleştirme Assemblies yönetme.

Dış kaynaklara erişme

kullanıcı tanımlı tür (udt), saklı yordam veya başka tür bir yapı derleme kayıtlıysa SAFE izin küme, daha sonra yapı içinde yönetilen kod çalıştırma. dış kaynaklara erişemiyorAncak, EXTERNAL_ACCESS veya UNSAFE izin kümeleri belirtilir ve yönetilen kod dış kaynaklara erişmeyi denediği SQL Server aşağıdaki kurallar geçerlidir:

Eğer

Sonra

Yürütme içeriği için karşılık gelen bir SQL Server oturum açma.

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 olur.

Dış kaynak güvenlik bağlamında erişilir SQL Server hizmet hesabı.

Arayan özgün arayan değildir.

Erişim reddedildi 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 çağıran özellikleri.

Erişim hizmet hesabı arayan güvenlik bağlamını kullanır.

İzin kümesi özeti

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

SAFE

EXTERNAL_ACCESS

UNSAFE

Code Access Security Permissions

Yalnızca yürütme

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

(p/Invoke de dahil olmak üzere) sınırsız

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