次の方法で共有


拡張ストアド プロシージャの実行における特性

重要な注意事項重要

この機能は、Microsoft SQL Server の将来のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。代わりに、CLR 統合を使用してください。

拡張ストアド プロシージャの実行には次の 3 つの特性があります。

  • 拡張ストアド プロシージャ関数は Microsoft SQL Server のセキュリティ コンテキストで実行されます。

  • 拡張ストアド プロシージャ関数は SQL Server の処理領域で実行されます。

  • 拡張ストアド プロシージャの実行に関連付けられているスレッドは、クライアント接続に使用するスレッドと同じです。

    セキュリティに関する注意セキュリティに関する注意

    システム管理者は、拡張ストアド プロシージャをサーバーに追加し、他のユーザーに実行権限を許可する前に、各拡張ストアド プロシージャに有害なコードや悪意のあるコードが含まれていないことを十分に確認する必要があります。

拡張ストアド プロシージャ DLL をロードすると、SQL Server が停止するか、または DBCC DLL_name (FREE) を使用して管理者により明示的にアンロードされるまで、その DLL はサーバーのアドレス領域にロードされた状態を維持します。

EXECUTE ステートメントを使用すると、拡張ストアド プロシージャをストアド プロシージャとして Transact-SQL から実行できます。

EXECUTE @retval = xp_extendedProcName @param1, @param2 OUTPUT

パラメーター

  • @ retval
    戻り値です。

  • @ param1
    入力パラメーターです。

  • @ param2
    入力/出力パラメーターです。

    注記注意

    拡張ストアド プロシージャを使用すると、パフォーマンスの向上や、SQL Server の機能強化を図ることができます。 ただし、拡張ストアド プロシージャ DLL と SQL Server は同じアドレス領域を共有するため、問題のあるプロシージャにより SQL Server の機能が影響を受けることがあります。 拡張ストアド プロシージャ DLL によってスローされる例外は SQL Server で処理されますが、SQL Server のデータ領域に損傷を与える可能性があります。 セキュリティ措置として、SQL Server に拡張ストアド プロシージャを組み込むことができるのは SQL Server システム管理者だけに限定されています。 これらのプロシージャは詳細にテストしてからインストールする必要があります。

関連項目

概念

拡張ストアド プロシージャのプログラミング

SQL Server にインストールされた拡張ストアド プロシージャの照会