clr enabled (サーバー構成オプション)

適用対象: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" のいずれかのオプションを無効にしてください。 CLR に依存していてファイバー モードで正しく動作しない機能には、hierarchyid データ型、FORMAT 関数、レプリケーション、およびポリシー ベースの管理があります。 詳細については、「lightweight pooling サーバー構成オプション」を参照してください

警告

CLR では、セキュリティ境界としてサポートされなくなった、.NET Framework のコード アクセス セキュリティ (CAS) が使用されます。 PERMISSION_SET = SAFE で作成された CLR アセンブリが、外部のシステム リソースにアクセスし、非管理対象コードを呼び出し、sysadmin 特権を取得できる場合があります。 SQL Server 2017 (14.x) 以降、CLR アセンブリのセキュリティを強化するために clr strict security という sp_configure オプションが導入されました。 clr strict security は既定で有効になり、SAFE および EXTERNAL_ACCESS アセンブリを UNSAFE とマークされている場合と同様に扱います。 clr strict security オプションは、旧バージョンとの互換性のために無効にできますが、これは推奨されません。 Microsoft では、master データベースで UNSAFE ASSEMBLY アクセス許可が付与されている対応するログインを含む証明書または非対称キーで、すべてのアセンブリに署名することをお勧めします。 SQL Server 管理者は、データベース エンジンが信頼するアセンブリのリストにアセンブリを追加することもできます。 詳細については、「sys.sp_add_trusted_assembly」を参照してください。

注意

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

次の例では、最初に clr enabled オプションの現在の設定を表示し、その後、オプションの値を 1 に設定することで、このオプションを有効にします。 このオプションを無効にするには、値を 0 に設定します。

EXEC sp_configure 'clr enabled';  
EXEC sp_configure 'clr enabled' , '1';  
RECONFIGURE;    

次のステップ