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 での SAFE 、EXTERNAL_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.
Related content
- CLR 統合セキュリティ の
- CLR 統合コード アクセス セキュリティ