サーバー構成: 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;