伺服器組態:已啟用 clr
適用於:SQL Server
使用 clr enabled
選項來指定 SQL Server 是否可執行使用者組件。 clr enabled
選項提供下列值:
值 | Description |
---|---|
0 |
SQL Server 上不允許的組件執行。 |
1 |
SQL Server 上允許的組件執行。 |
僅針對 WOW64:重新啟動 WOW64 伺服器以套用這些變更。 對於其他伺服器類型,則不需要重新啟動。
當您執行 RECONFIGURE
且 clr enabled
選項的執行值從 1
變更為 0
時,會立即卸載包含使用者組件的所有應用程式定義域。
限制
輕量型共用不支援通用語言執行平台 (CLR) 的執行
停用兩個選項之一:clr enabled
或 lightweight pooling
。 依賴 CLR 且在 Fiber 模式下無法正常運作的功能包括了 hierarchyid 資料類型、FORMAT
功能、複寫和原則式管理。 如需詳細資訊,請參閱 [輕量型共用伺服器組態選項]。
雖然 Azure SQL Database 中已啟用 clr enabled
設定選項,但 Azure SQL 資料庫中不支援開發 CLR 使用者函數。
不再支援程式碼存取安全性
CLR 使用 .NET Framework 中的程式碼存取安全性 (CAS),而這不再作為安全性界限受支援。 使用 PERMISSION_SET = SAFE
所建立的 CLR 組件可以存取外部系統資源、呼叫非受控程式碼,以及取得系統管理員權限。 在 SQL Server 2017 (14.x) 和更新版本中,sp_configure
安全性選項可增強 CLR 嚴格安全性。 clr strict security
會依預設啟用,且將 SAFE
與 EXTERNAL_ACCESS
組件視作已標記為 UNSAFE
一樣。 可以基於回溯相容性而停用 clr strict security
選項,但不建議這麼做。
我們建議透過具有已獲授與資料庫中 UNSAFE ASSEMBLY
權限master
之對應登入的憑證或非對稱金鑰簽署所有組件。 SQL Server 系統管理員也可以將組件新增至資料庫引擎應該信任的組件清單。 如需詳細資訊,請參閱 sys.sp_add_trusted_assembly。
範例
下列範例會先顯示 clr enabled
選項的目前設定,然後將選項值設定為 1 來啟用選項。 若要停用此選項,請將值設定為 0。
EXEC sp_configure 'clr enabled';
EXEC sp_configure 'clr enabled' , '1';
RECONFIGURE;