CLR 統合のセキュリティ

.NET Framework共通言語ランタイム (CLR) のセキュリティ モデルは、Transact-SQL ステートメント内で実行されている CLR オブジェクトと、サーバー内で実行されている別の CLR オブジェクト間の異なる種類の CLR オブジェクト間のアクセスを管理およびセキュリティで保護します。 オブジェクト間の呼び出しをリンクと呼びます。 このようなオブジェクトに対して実行されるセキュリティ チェックの種類は、関連するリンクの種類によって異なります。

CLR 統合のセキュリティ モデルは、次のことを目標にしています。

  • 既定では、SQL Serverでマネージド ユーザー コードを実行します。 SQL Serverの堅牢性を損なう可能性のある操作の実行は、適切な高レベルのアクセス許可によって保護する必要があります。

  • マネージド ユーザー コードは、データベース内のユーザー データや他のユーザー コードに対して、未承認のアクセスを行わない。 ユーザー定義コードは、そのコードを呼び出したユーザー セッションのセキュリティ コンテキストで実行する。実行には、そのセキュリティ コンテキストにおける適切な特権を使用する。

  • ユーザー コードからサーバー外部のリソースへのアクセスを禁止するための制御機能を備える。ユーザー コードの使用は、ローカル データのアクセスおよびコンピューティングに限定する。

  • ユーザー定義コードは、SQL Server プロセスで実行されることにより、システム リソースへの不正アクセスを取得できないようにする必要があります。

CLR のコード アクセス ベースのセキュリティ モデルを使用してSQL Serverします。 このセクションでは、このようにセキュリティ モデルを組み合わせたアプローチによるメリットの一部を紹介します。

次の表に、このセクションのトピックを示します。

CLR 統合のコード アクセス セキュリティ
マネージド コードのコード アクセス セキュリティ (CAS) モデルについて説明します。

ホスト保護属性と CLR 統合プログラミング
SAFE アセンブリと EXTERNAL_ACCESS アセンブリで許可されていないホスト保護属性 (HPA) の値に関する情報を提供します。

CLR 統合のセキュリティのリンク
ユーザー コードの一部がSQL Serverで相互に呼び出す方法について説明します。

権限借用と CLR 統合のセキュリティ
権限借用を使用してマネージド コードが外部リソースにアクセスするしくみを説明します。

部分的に信頼される呼び出し元の許容
マネージド メソッドが別のアセンブリに含まれるクラスのメソッドを起動する際に生じる問題について説明します。

アプリケーション ドメインと CLR 統合のセキュリティ
アセンブリがアプリケーション ドメインに読み込まれるしくみを説明します。

参照

CLR 統合アセンブリの管理