共用方式為


CLR(公共語言執行平台)整合安全性

.NET Framework Common Language Runtime (CLR) 的安全性模型會管理及保護在 Transact-SQL 語句內執行的不同類型的 CLR 和非 CLR 物件,或伺服器中執行的另一個 CLR 對象之間的存取。 對象之間的呼叫稱為連結。 在這些對象上執行的安全性檢查類型取決於所涉及的連結類型。

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

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

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

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

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

具有 CLR 程式代碼存取型安全性模型的 SQL Server。 本節將討論此結合安全性方法的一些優點。

下表列出本節中的主題。

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

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

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

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

允許部分信任的呼叫端
討論當 Managed 方法在另一個元件中包含的類別中叫用方法時所發生的問題。

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

另請參閱

管理 CLR 整合元件