サーバー構成: clr が有効

適用対象: SQL Server

SQL Server でユーザー アセンブリを実行できるかどうかを指定するには、clr enabled オプションを使用します。 clr enabled オプションでは、次の値を指定します。

説明
0 SQL Serverでアセンブリを実行できません。
1 SQL Serverでアセンブリを実行できます。

WOW64 の場合のみ: WOW64 サーバーを再起動して、これらの変更を適用します。 他の種類のサーバーでは、再起動は不要です。

RECONFIGURE を実行し、clr enabled オプションの実行値が 1 から 0 に変更されると、ユーザー アセンブリが含まれているすべてのアプリケーション ドメインが直ちにアンロードされます。

制限事項

簡易プーリングでは、共通言語ランタイム (CLR) の実行はサポートされていません

clr enabled または lightweight pooling の 2 つのオプションのいずれかを無効にします。 CLR に依存していてファイバー モードで正しく動作しない機能には、hierarchyid データ型、FORMAT 関数、レプリケーション、およびポリシー ベースの管理があります。 詳細については、「サーバー構成: 簡易プーリング」を参照してください。

Azure SQL データベース では clr enabled 構成オプションが有効になっていますが、CLR ユーザー関数の開発は Azure SQL データベース ではサポートされていません。

コード アクセス セキュリティはサポートされていません

CLR では、セキュリティ境界としてサポートされなくなった、.NET Framework のコード アクセス セキュリティ (CAS) が使用されます。 PERMISSION_SET = SAFE で作成された CLR アセンブリが、外部のシステム リソースにアクセスし、非管理対象コードを呼び出し、sysadmin 特権を取得できる場合があります。 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;