簡體   English   中英

SQL CLR用戶定義函數中的C#支持程度?

[英]Degree of C# support in SQL CLR user-defined function?

這可能很幼稚,但我對此沒有任何確認:當我通過SQLCLR並作為C#SQL Server項目編寫SQL函數時,SQL函數可以在.NET BCL中包含任何方法/類/命名空間嗎? 功能可以做什么? 我對SQL Server及其托管操作系統具有完全控制權,因此可以在該級別上修改安全設置。 我對SQLCLR用戶定義函數(SQL項目)中對C#的語言支持更感興趣。

我的最終代碼部署將在SQL Server 2005和2008 R2(企業版)上進行。 由於就功能和支持而言,2008 R2將是2005的發展,所以2005是我的共同點,因此我對2005的答案很感興趣。

謝謝

.NET版本取決於SQL Server版本:

  • 2005 = .NET v2.0
  • 2008 / R2 = .NET v3.5

它不是對.NET的完全訪問權限-限制基於external_access參數。 有關更多詳細信息,請參見此鏈接: http : //msdn.microsoft.com/zh-cn/library/ms345101.aspx

這不可以。 您不能使用具有[HostProtection]屬性的類來將其標記為不安全的類。 有關詳細信息,請參見MSDN Library文章 ,其中包括禁止訪問的類的列表。

此類的經典示例是TimeZoneInfo,它加載了一個非托管DLL,如果查詢中止,該DLL不會被卸載。

[HostProtection(SecurityAction.LinkDemand, MayLeakOnAbort=true)]
public sealed class TimeZoneInfo : IEquatable<TimeZoneInfo>, ISerializable, IDeserializationCallback
{
  // etc...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM