次の方法で共有


SQL Server CLR 統合の概要

共通言語ランタイム (CLR) は .NET Framework の中核であり、すべての .NET Framework コードの実行環境を提供します。 CLR 内で実行されるコードは、マネージド コードと呼ばれます。 CLR は、ジャストインタイム (JIT) コンパイル、メモリの割り当てと管理、タイプ セーフの設定、例外処理、スレッド管理、セキュリティなど、プログラムの実行に必要なさまざまな機能やサービスを備えています。

Microsoft SQL Server でホストされている CLR (CLR 統合と呼ばれます) を使用すると、ストアド プロシージャ、トリガー、ユーザー定義関数、ユーザー定義型、およびユーザー定義集計をマネージド コードで作成できます。 マネージド コードは実行前にネイティブ コードにコンパイルされるため、一部のシナリオではパフォーマンスが大幅に向上します。

.NET Framework で実行されているマネージド コードは、コード アクセス セキュリティ (CAS)、コード リンク、およびアプリケーション ドメインを使用して、アセンブリが特定の操作を実行できないようにします。 SQL Server では、CAS を使用してマネージド コードをセキュリティで保護し、オペレーティング システムまたはデータベース サーバーの侵害を防ぎます。

コード アクセス セキュリティ (CAS) は、.NET Framework と .NET のすべてのバージョンで非推奨になりました。 最近のバージョンの .NET では、CAS に関連する API が使用されている場合、CAS 注釈は使用されず、エラーが発生します。 開発者は、セキュリティ タスクを実行するための代替手段を求める必要があります。

このセクションは、SQL Server CLR 統合でのプログラミングを開始するのに十分な情報のみを提供することを目的としており、包括的なものではありません。 詳細については、「 共通言語ランタイム (CLR) 統合の概要」を参照してください。

CLR 統合の有効化

共通言語ランタイム (CLR) 統合機能は、Microsoft SQL Server では既定ではオフになっており、CLR 統合を使用して実装されるオブジェクトを使用するには有効にする必要があります。 Transact-SQL を使用して CLR 統合を有効にするには、次に示すように、clr enabled ストアド プロシージャのsp_configure オプションを使用します。

sp_configure 'clr enabled', 1  
GO  
RECONFIGURE  
GO  

clr enabled オプションを 0 に設定することにより、CLR 統合を無効にできます。 CLR 統合を無効にすると、SQL Server はすべての CLR ルーチンの実行を停止し、すべてのアプリケーション ドメインをアンロードします。

詳細については、「 CLR 統合の有効化」を参照してください。

CLR アセンブリの配置

テスト サーバーで CLR メソッドがテストおよび検証されたら、デプロイ スクリプトを使用して運用サーバーに配布できます。 デプロイ スクリプトは、手動で、または SQL Server Management Studio を使用して生成できます。 詳細については、使用している SQL Server のバージョンに関する SQL Server のドキュメントのバージョンを参照してください。

SQL Server のドキュメント

  1. CLR データベース オブジェクトの配置

CLR統合セキュリティ

Microsoft SQL Server と Microsoft .NET Framework 共通言語ランタイム (CLR) の統合のセキュリティ モデルは、さまざまな種類の CLR と SQL Server 内で実行されている CLR 以外のオブジェクト間のアクセスを管理し、セキュリティで保護します。 これらのオブジェクトは、Transact-SQL ステートメントまたはサーバーで実行されている別の CLR オブジェクトによって呼び出される場合があります。

詳細については、 CLR 統合のセキュリティに関する記事を参照してください。

CLR アセンブリのデバッグ

Microsoft SQL Server では、データベース内の Transact-SQL および共通言語ランタイム (CLR) オブジェクトのデバッグがサポートされています。 デバッグは言語間で機能します。ユーザーは Transact-SQL から CLR オブジェクトにシームレスにステップ インできます。また、その逆も可能です。

詳細については、「 CLR データベース オブジェクトのデバッグ」を参照してください。

こちらも参照ください