CLR 整合安全性

適用於:SQL Server

SQL Server 與 .NET Framework Common Language Runtime (CLR) 整合的安全性模型,可管理及保護在 SQL Server 內執行之不同 CLR 類型和非 CLR 物件之間的存取。 這些物件可由 Transact-SQL 陳述式或在伺服器中執行的其他 CLR 物件呼叫。 物件之間的呼叫稱為連結。 在這些物件上執行的安全性檢查類型取決於所涉及的連結類型。

CLR 整合安全性模型具有下列目標:

  • 根據預設,在 SQL Server 上執行受控使用者程式碼不應危害 SQL Server 的完整性和穩定性。 執行可能會危害 SQL Server 健全性的作業,應該受到適當的高階許可權保護。

  • 受控使用者程式碼不應取得未經授權存取資料庫中的使用者資料或其他使用者程式碼。 使用者定義程式碼應該在叫用它的使用者會話安全性內容下執行,並具有該安全性內容的正確許可權。

  • 應該控制限制使用者程式碼存取伺服器外部的任何資源,並嚴格使用它進行本機資料存取和計算。

  • 使用者定義程式碼應該無法透過在 SQL Server 進程中執行,取得系統資源的未經授權存取權。

SQL Server 現在會將 SQL Server 的使用者型安全性模型與 CLR 的程式碼存取型安全性模型整合。 本節將討論此結合安全性方法的一些優點。

下表列出本節中的主題。

CLR 整合代碼存取安全性
討論 Managed 程式碼的程式碼存取安全性 (CAS) 模型。

主機保護屬性和 CLR 整合程式設計
提供 SAFE 和 EXTERNAL_ACCESS 元件中不允許的主機保護屬性 (HPA) 值的相關資訊。

CLR 整合安全性中的連結
描述如何在 SQL Server 中互相呼叫使用者程式碼片段。

模擬和 CLR 整合安全性
討論 Managed 程式碼如何使用模擬存取外部資源。

討論當 Managed 方法在另一個元件中包含的類別中叫用方法時所發生的問題。

應用程式域和 CLR 整合安全性
描述如何將元件載入應用程式域。

另請參閱

管理 CLR 整合元件