拡張ストアド プロシージャの実行における特性
重要 : |
---|
この機能は、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 にインストールされた拡張ストアド プロシージャの照会