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 security
的 sp_configure
選項來增強 CLR 組件的安全性。 clr strict security
會依預設啟用,且將 SAFE
與 EXTERNAL_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;
下一步
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: