次の方法で共有


CLR 統合アセンブリの管理

Applies to:SQL Server

マネージド コードがコンパイルされ、共通言語ランタイム (CLR) アセンブリと呼ばれる単位でデプロイされます。 アセンブリは、DLL または実行可能ファイル (.exe) ファイルとしてパッケージ化されます。 実行可能ファイルが単独で実行できるのに対し、DLL は既存のアプリケーションでホストする必要があります。 マネージド DLL アセンブリは、SQL Server に読み込んでホストできます。 SQL Server では、アセンブリをプロセスに読み込んで使用する前に、CREATE ASSEMBLY ステートメントを使用してデータベースに登録する必要があります。 アセンブリは、ALTER ASSEMBLY ステートメントを使用して新しいバージョンから更新することも、DROP ASSEMBLY ステートメントを使用して SQL Server から削除することもできます。

アセンブリ情報は、アセンブリがインストールされているデータベースの sys.assembly_files テーブルに格納されます。 sys.assembly_files テーブルには、次の列が含まれています。

Column Description
assembly_id アセンブリに定義される ID。 この番号は、同じアセンブリに関連するすべてのオブジェクトに割り当てられます。
name オブジェクトの名前。
file_id 各オブジェクトを識別する数値。指定された assembly_id に関連付けられた最初のオブジェクトの値は 1 です。 複数のオブジェクトが同じ assembly_idに関連付けられている場合、後続の各 file_id 値は 1 ずつインクリメントされます。
content アセンブリまたはファイルの 16 進数表記。

このセクションでは、次の操作を行います。

Article Description
アセンブリ を作成する SQL Server での SAFEEXTERNAL_ACCESS、および UNSAFE CLR アセンブリの作成について説明します
アセンブリ を変更する SQL Server での CLR アセンブリの更新について説明します
アセンブリ を削除する SQL Server からの CLR アセンブリの削除について説明します

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

CLR では、セキュリティ境界としてサポートされなくなった、.NET Framework のコード アクセス セキュリティ (CAS) が使用されます。 PERMISSION_SET = SAFE で作成された CLR アセンブリが、外部のシステム リソースにアクセスし、非管理対象コードを呼び出し、sysadmin 特権を取得できる場合があります。 SQL Server 2017 (14.x) 以降のバージョンでは、sp_configure オプション、clr strict security により CLR アセンブリのセキュリティが強化されます。 clr strict security は既定で有効になり、SAFE および EXTERNAL_ACCESS アセンブリを UNSAFE とマークされている場合と同様に扱います。 clr strict security オプションは、旧バージョンとの互換性のために無効にできますが、これは推奨されません。

UNSAFE ASSEMBLYデータベースで master アクセス許可が付与されている対応するログインを含む証明書または非対称キーで、すべてのアセンブリに署名することをお勧めします。 SQL Server 管理者は、データベース エンジンが信頼するアセンブリのリストにアセンブリを追加することもできます。 For more information, see sys.sp_add_trusted_assembly.