سمات حماية SQL الخادم البرمجة و مضيف

إدارة القدرة على تحميل وتنفيذ تعليمات برمجية في SQL الخادم يتطلب مضيف الاجتماع المتطلبات للمضيف لكل رمز الوصول إلى حماية موارد الالأمان والمضيف. متطلبات الأمان للوصول إلى تعليمات برمجية المحددة بمقدار ثلاثة SQL Server إذن يعين: آمن، الخارجية-الوصول، أو UNSAFE. تعليمات برمجية بتنفيذ ضمن آمن أو يجب تجنب تعيين الإذن خارجي-وصول الأعضاء التي لديها أو أنواع معينة HostProtectionAttributeالسمة المطبقة. HostProtectionAttributeلم يكن إذن الأمان وإمكانية الاعتماد ضمان في ذلك يعرف معينة كثيرا النسبة تعليمات برمجية بناء أنواع أو الأساليب التي قد منع مضيف. استخدم من HostProtectionAttributeتفرض نموذج برمجة التي تساعد على يحمي الاستقرار للمضيف.

السمات حماية مضيف

السمات حماية المضيف التعرف على أنواع أو الأعضاء الذين لا يتم احتواء مضيف البرمجة صياغة و تمثل مستويات المتزايد من تهديد ثبات النظام التالية:

  • benign خلاف ذلك.

  • وقد يؤدي إلى destabilization من الخادم-مستخدم تعليمات برمجية تمت إدارتها.

  • قد يؤدي إلى destabilization عملية الملقم نفسه.

SQL الخادم لا يسمح باستخدام نوع أو عضو له HostProtectionAttributeالتي تحدد HostProtectionResourceالقيمة SharedState، Synchronization، MayLeakOnAbort، أو ExternalProcessMgmt. وهذا يمنع تجميعات من استدعاء الأعضاء تقوم بتمكين الولاية المشاركة أو إجراء المزامنة، قد تتسبب في حدوث تسرب موارد في الولاية إنهاء أو تؤثر تشغيل سلامة SQL الخادم العملية.

أنواع و الأعضاء غير مسموح به

يعرف الجدول التالي أنواع والأعضاء الذين HostProtectionResourceقيم غير مسموح ب SQL الخادم.

مساحة الاسم

نوع أو عضو

Microsoft.Win32

فئة PowerModeChangedEventArgs .

PowerModeChangedEventHandlerتفويض

فئة SessionEndedEventArgs .

SessionEndedEventHandlerتفويض

فئة SessionEndingEventArgs .

SessionEndingEventHandlerتفويض

فئة SessionSwitchEventArgs .

SessionSwitchEventHandlerتفويض

فئة SystemEvents .

فئة TimerElapsedEventArgs .

TimerElapsedEventHandlerتفويض

فئة UserPreferenceChangedEventArgs .

فئة UserPreferenceChangingEventArgs .

System.Collections

أسلوب ArrayList.Synchronized:

أسلوب Hashtable.Synchronized:

أسلوب Queue.Synchronized:

أسلوب SortedList.Synchronized:

أسلوب Stack.Synchronized:

System.ComponentModel

فئة AddingNewEventArgs .

AddingNewEventHandlerتفويض

فئة ArrayConverter .

فئة AsyncCompletedEventArgs .

AsyncCompletedEventHandlerتفويض

فئة AsyncOperation .

فئة AsyncOperationManager .

فئة AttributeCollection .

فئة BackgroundWorker .

فئة BaseNumberConverter .

فئة BindingList<T> .

فئة BooleanConverter .

فئة ByteConverter .

فئة CancelEventArgs .

CancelEventHandlerتفويض

فئة CharConverter .

فئة CollectionChangeEventArgs .

CollectionChangeEventHandlerتفويض

فئة CollectionConverter .

فئة ComponentCollection .

فئة ComponentConverter .

فئة ComponentEditor .

فئة ComponentResourceManager .

فئة Container .

فئة ContainerFilterService .

فئة CultureInfoConverter .

فئة CustomTypeDescriptor .

فئة DateTimeConverter .

فئة DecimalConverter .

فئة ActiveDesignerEventArgs .

ActiveDesignerEventHandlerتفويض

فئة CheckoutException .

فئة CommandID .

فئة ComponentChangedEventArgs .

ComponentChangedEventHandlerتفويض

فئة ComponentChangingEventArgs .

ComponentChangingEventHandlerتفويض

فئة ComponentEventArgs .

ComponentEventHandlerتفويض

فئة ComponentRenameEventArgs .

ComponentRenameEventHandlerتفويض

فئة DesignerCollection .

فئة DesignerEventArgs .

DesignerEventHandlerتفويض

فئة DesignerOptionService .

فئة DesignerTransaction .

فئة DesignerTransactionCloseEventArgs .

DesignerTransactionCloseEventHandlerتفويض

فئة DesignerVerb .

فئة DesignerVerbCollection .

فئة DesigntimeLicenseContext .

فئة DesigntimeLicenseContextSerializer .

فئة MenuCommand .

فئة ComponentSerializationService .

فئة ContextStack .

فئة DesignerLoader .

فئة InstanceDescriptor .

فئة MemberRelationshipService .

فئة ResolveNameEventArgs .

ResolveNameEventHandlerتفويض

فئة SerializationStore .

فئة ServiceContainer .

ServiceCreatorCallbackتفويض

فئة StandardCommands .

فئة StandardToolWindows .

فئة DoubleConverter .

فئة DoWorkEventArgs .

DoWorkEventHandlerتفويض

فئة EnumConverter .

فئة EventDescriptor .

فئة EventDescriptorCollection .

فئة EventHandlerList .

فئة ExpandableObjectConverter .

فئة HandledEventArgs .

HandledEventHandlerتفويض

فئة InstanceCreationEditor .

فئة Int16Converter .

فئة Int32Converter .

فئة Int64Converter .

فئة InvalidAsynchronousStateException .

فئة InvalidEnumArgumentException .

أسلوب BeginInvoke:

فئة License .

فئة LicenseContext .

فئة LicenseException .

فئة LicenseManager .

فئة LicenseProvider .

فئة LicFileLicenseProvider .

فئة ListChangedEventArgs .

ListChangedEventHandlerتفويض

فئة ListSortDescription .

فئة ListSortDescriptionCollection .

فئة MaskedTextProvider .

فئة MemberDescriptor .

فئة MultilineStringConverter .

فئة NestedContainer .

فئة NullableConverter .

فئة ProgressChangedEventArgs .

ProgressChangedEventHandlerتفويض

فئة PropertyChangedEventArgs .

PropertyChangedEventHandlerتفويض

فئة PropertyDescriptor .

فئة PropertyDescriptorCollection .

فئة ReferenceConverter .

فئة RefreshEventArgs .

RefreshEventHandlerتفويض

فئة RunWorkerCompletedEventArgs .

RunWorkerCompletedEventHandlerتفويض

فئة SByteConverter .

فئة SingleConverter .

فئة StringConverter .

فئة SyntaxCheck .

فئة TimeSpanConverter .

فئة TypeConverter .

فئة TypeDescriptionProvider .

فئة TypeDescriptor .

فئة TypeListConverter .

فئة UInt16Converter .

فئة UInt32Converter .

فئة UInt64Converter .

فئة WarningException .

فئة Win32Exception .

System.Diagnostics

خاصية Debug.Listeners

خاصية Trace.Listeners

خاصية EventLog.SynchronizingObject

فئة ConsoleTraceListener .

فئة DefaultTraceListener .

فئة DelimitedListTraceListener .

فئة EventLogTraceListener .

فئة PerformanceCounter .

فئة PerformanceCounterCategory .

فئة Process .

فئة ProcessStartInfo .

فئة TextWriterTraceListener .

فئة TraceListener .

فئة XmlWriterTraceListener .

خاصية TraceSource.Listeners

System.IO

أسلوب Stream.Synchronized:

أسلوب TextReader.Synchronized:

أسلوب TextWriter.Synchronized:

System.Reflection.Emit

فئة ConstructorBuilder .

فئة EventBuilder .

فئة FieldBuilder .

فئة MethodBuilder .

فئة CustomAttributeBuilder .

فئة MethodRental .

فئة ModuleBuilder .

فئة PropertyBuilder .

فئة TypeBuilder .

فئة UnmanagedMarshal .

System.Text

أسلوب Group.Synchronized:

أسلوب Match.Synchronized:

System.Threading

فئة AutoResetEvent .

فئة EventWaitHandle .

فئة ManualResetEvent .

فئة Monitor .

فئة Mutex .

فئة ReaderWriterLock .

فئة Semaphore .

أسلوب Thread.AllocateNamedDataSlot:

أسلوب Thread.BeginCriticalRegion:

أسلوب Thread.EndCriticalRegion:

أسلوب Thread.FreeNamedDataSlot:

أسلوب Thread.GetData:

أسلوب Thread.Join:

أسلوب Thread.SetApartmentState:

أسلوب Thread.SetData:

أسلوب Thread.SpinWait:

أسلوب Thread.Start:

أسلوب Thread.TrySetApartmentState:

فئة ThreadPool .

فئة Timer .

System.Timers

فئة Timer .

System.Web.Configuration

فئة MachineKeyValidationConverter .

System.Windows.Forms

خاصية AutoCompleteStringCollection.SyncRoot

مجموعات إذن SQL Server

الخادم SQL يسمح للمستخدمين بتحديد متطلبات وثوقية للتعليمات البرمجية التي تم نشرها في قاعدة بيانات. عندما يتم تحميل تجميعات في قاعدة بيانات، يمكن تحديد واحد من ثلاث مجموعات إذن كاتب تجميع هذا تجميع: آمن، الخارجية-الوصول، أو UNSAFE.

مجموعة إذن

آمن

الوصول الخارجي

غير آمن

أمان رمز الوصول

ينفذ فقط

ينفذ + الوصول إلى الموارد الخارجية

غير مقيد

قيود طراز البرمجة

نعم

نعم

لا توجد قيود.

المتطلبات القابلة للتحقق

نعم

نعم

لا

القدرة على الاتصال بتعليمة برمجية أصلية

لا

لا

نعم

آمن هو الأكثر وثوقية و الوضع آمن بالقيود المقترنة من طراز البرمجة المسموح بها. الأمن تعليمات برمجية يحتوي على ميزات الأمان ووثوقية عالية. يتم منح تجميعات آمن أذونات كافية لتشغيل، قم بإجراء حسابات، و حق الوصول إلى قاعدة بيانات المحلية. تجميعات آمن بحاجة أن verifiably نوع آمنة وغير مسموح باستدعاء تعليمات برمجية غير المدارة.

يوفر خارجية-وصول خيار الأمان متوسطة، مما يسمح تعليمات برمجية للوصول إلى موارد خارجية لقاعدة البيانات ولكن لا تزال تواجه وثوقية والأمان اﻷمن.

غير آمنة هو لتعليمات برمجية موثوق بها بشدة التي يمكن إنشاؤها عن طريق adminهوtrators قاعدة بيانات. هذا موثوق به على تعليمات برمجية دون قيود على الوصول إلى تعليمات برمجية، و يمكن الاتصال بتعليمات برمجية غير مدارة (الأصلي).

يستخدم SQL الخادم المضيف الالمستوى تعليمات برمجية طبقة نهج الأمان الوصول إعداد نهج مضيف الذي يمنح واحدة من ثلاث مجموعات من الأذونات استناداً إلى إذن تعيين المخزن في النشرات المصورة SQL الخادم. تعليمات برمجية مُدارة يحصل تشغيل داخل قاعدة بيانات دائماً على إحدى مجموعات إذن الوصول إلى التعليمات البرمجية.

قيود نموذج البرمجة

طراز البرمجة لتعليمات برمجية تمت إدارتها في SQL الخادم يتطلب وظائف وإجراءات، و أنواع التي لا تتطلب استخدام الولاية تعليق عبر invocations متعددة أو مشاركة الالولاية عبر عدة جلسات عمل مستخدمين. علاوة على ذلك، كما هو موضح أعلاه، يمكن أن يؤدي وجود الولاية مشتركة الاستثناءات حرج التي تؤثر قابلية التوسع و الثقة الخاص بالتطبيق.

تعطي هذه الاعتبارات، SQL الخادم لا يسمح باستخدام المتغيرات ثابتة وأعضاء بيانات الثابتة. للتجميعات الأمن و الخارجي-وصول، SQL الخادم بفحص بيانات التعريف الخاصة بتجميع في وقت "إنشاء تجميع"، و يفشل إنشاء هذه تجميعات في حالة العثور على استخدام الأعضاء البيانات الثابتة و المتغيرات.

راجع أيضًا:

المرجع

HostProtectionAttribute

HostProtectionResource