CLR 已啟用 (伺服器組態選項)

適用於:SQL Server

使用 clr enabled 選項來指定 SQL Server 是否可執行使用者組件。 clr enabled 選項提供下列值:

描述
0 SQL Server 上不允許的組件執行。
1 SQL Server 上允許的組件執行。

僅針對 WOW64:重新啟動 WOW64 伺服器以套用這些變更。 對於其他伺服器類型,則不需要重新啟動。

當您執行 RECONFIGURE 且 clr enabled 選項的執行值從 1 變更為 0 時,會立即卸載包含使用者組件的所有應用程式定義域。

重要

在輕量型共用下,不支援通用語言執行平台 (CLR) 執行請停用下列兩個選項中的其中一種:"clr enabled" 或 "lightweight pooling"。 依賴 CLR 且在 Fiber 模式下無法正常運作的功能包括了 hierarchyid 資料類型、FORMAT 功能、複寫和以原則為基礎的管理。 如需詳細資訊,請參閱輕量型共用伺服器設定選項

警告

CLR 使用 .NET Framework 中的程式碼存取安全性 (CAS),而這不再作為安全性界限受支援。 使用 PERMISSION_SET = SAFE 所建立的 CLR 組件可以存取外部系統資源、呼叫 Unmanaged 程式碼,以及取得系統管理員權限。 從 SQL Server 2017 (14.x) 開始,引進稱為 clr strict securitysp_configure 選項來增強 CLR 組件的安全性。 clr strict security 會依預設啟用,且將 SAFEEXTERNAL_ACCESS 組件視作已標記為 UNSAFE 一樣。 可以基於回溯相容性停用 clr strict security 選項,但不建議這麼做。 Microsoft 建議透過具有已獲授與 master 資料庫中 UNSAFE ASSEMBLY 權限之對應登入的憑證或非對稱金鑰簽署所有組件。 SQL Server 系統管理員也可以將組件新增至資料庫引擎應該信任的組件清單。 如需詳細資訊,請參閱 sys.sp_add_trusted_assembly

注意

雖然 Azure SQL Database 中已啟用 clr enabled 設定選項,但 Azure SQL Database 中不支援開發 CLR 使用者函數。

範例

下列範例會先顯示 clr enabled 選項的目前設定,然後將選項值設定為 1 來啟用選項。 若要停用此選項,請將值設定為 0。

EXEC sp_configure 'clr enabled';  
EXEC sp_configure 'clr enabled' , '1';  
RECONFIGURE;    

下一步