延伸預存程序

重要事項重要事項

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。改用 CLR 整合

擴充預存程序可讓您使用程式設計語言 (如 C 語言) 來建立您自己的外部常式。擴充預存程序對使用者而言就和一般的預存程序一樣,而且會以相同的方式來執行。您可以傳送參數至擴充預存程序,而擴充預存程序可傳回結果及狀態。

擴充預存程序是可以動態載入及執行 SQL Server 執行個體的 DDL。擴充預存程序在 SQL Server 執行個體的位址空間中直接執行,是使用 SQL Server 擴充預存程序 API 所設計的程式。

[!附註]

擴充預存程序不應用來起始 Microsoft .NET Framework Common Language Runtime 以及執行 Managed 程式碼。新版的 SQL Server 將不支援前述作業。「CLR 整合」提供了更可靠且安全的方式來撰寫擴充預存程序。

撰寫擴充預存程序後,系統管理員 (sysadmin) 固定伺服器角色的成員即可在 SQL Server 執行個體註冊該擴充預存程序,然後將執行程序的權限授與其他使用者。擴充預存程序只能加入 master 資料庫。

[!附註]

擴充預存程序可能產生記憶體遺漏或其他降低伺服器效能與可靠度的問題。您應考慮將擴充預存程序與參考資料儲存在不同的 SQL Server 執行個體中。同時應考慮使用分散式查詢來存取資料庫。如需詳細資訊,請參閱<分散式查詢>。

安全性

將擴充預存程序加入伺服器、並將執行權限授與其他使用者之前,系統管理員應徹底檢查每個擴充預存程序,以確定其中不含任何有害或惡意的程式碼。

其他安全性指導方針如下:

  • 驗證所有使用者輸入。

  • 在使用者輸入完成驗證前,請勿加以串連。

  • 請勿執行由未經驗證之使用者輸入所建構的指令。如需詳細資訊,請參閱<SQL 資料隱碼>。