clr enabled サーバー構成オプション
適用対象:SQL Server (サポートされているすべてのバージョン)
オプションを使用して、 clr enabled
SQL Server によってユーザーアセンブリを実行できるかどうかを指定します。 clr enabled
オプションでは、次の値を指定します。
値 | 説明 |
---|---|
0 | SQL Server ではアセンブリの実行は許可されていません。 |
1 | SQL Server でのアセンブリの実行が許可されます。 |
WOW64 の場合のみ: WOW64 サーバーを再起動して、これらの変更を適用します。 他の種類のサーバーでは、再起動は不要です。
RECONFIGURE を実行し、clr enabled
オプションの実行値が 1 から 0 に変更されると、ユーザー アセンブリが含まれているすべてのアプリケーション ドメインが直ちにアンロードされます。
重要
簡易プーリングでは、共通言語ランタイム (CLR) の実行はサポートされていません "clr enabled" または "lightweight pooling" のいずれかのオプションを無効にしてください。 CLR に依存し、ファイバーモードで適切に動作しない機能には、 hierarchyid データ型、 関数、レプリケーション、およびポリシーベースの管理が含まれます。 詳細については、「lightweight pooling サーバー構成オプション」を参照してください
警告
CLR では、セキュリティ境界としてサポートされなくなった、.NET Framework のコード アクセス セキュリティ (CAS) が使用されます。 PERMISSION_SET = SAFE
で作成された CLR アセンブリが、外部のシステム リソースにアクセスし、非管理対象コードを呼び出し、sysadmin 特権を取得できる場合があります。 SQL Server 2017 (14. x) 以降では、 sp_configure
CLR アセンブリのセキュリティを強化するためにという clr strict security
オプションが導入されています。 clr strict security
は既定で有効になり、SAFE
および EXTERNAL_ACCESS
アセンブリを UNSAFE
とマークされている場合と同様に扱います。 clr strict security
オプションは、旧バージョンとの互換性のために無効にできますが、これは推奨されません。 Microsoft では、master データベースで UNSAFE ASSEMBLY
アクセス許可が付与されている対応するログインを含む証明書または非対称キーで、すべてのアセンブリに署名することをお勧めします。 SQL Server 管理者は、アセンブリの一覧にアセンブリを追加することもできます。アセンブリは、データベースエンジンが信頼する必要があります。 詳細については、「sys.sp_add_trusted_assembly」を参照してください。
Note
clr enabled
Azure SQL Database では構成オプションが有効になっていますが、CLR ユーザー関数の開発は Azure SQL Database ではサポートされていません。
例
次の例では、最初に clr enabled
オプションの現在の設定を表示し、その後、オプションの値を 1 に設定することで、このオプションを有効にします。 このオプションを無効にするには、値を 0 に設定します。
EXEC sp_configure 'clr enabled';
EXEC sp_configure 'clr enabled' , '1';
RECONFIGURE;