.NET Framework 共通言語ランタイム (CLR) のセキュリティ モデルは、さまざまな種類の CLR オブジェクトと、Transact-SQL ステートメント内で実行されている CLR 以外のオブジェクト、またはサーバーで実行されている別の CLR オブジェクト間のアクセスを管理およびセキュリティで保護します。 オブジェクト間の呼び出しをリンクと呼びます。 このようなオブジェクトに対して実行されるセキュリティ チェックの種類は、関連するリンクの種類によって異なります。
CLR 統合のセキュリティ モデルは、次のことを目標にしています。
既定では、SQL Server でマネージド ユーザー コードを実行します。 SQL Server の堅牢性を損なう可能性のある操作の実行は、適切な高レベルのアクセス許可によって保護する必要があります。
マネージド ユーザー コードは、データベース内のユーザー データやその他のユーザー コードへの不正アクセスを取得しないでください。 ユーザー定義コードは、そのコードを呼び出したユーザー セッションのセキュリティ コンテキストで実行する。実行には、そのセキュリティ コンテキストにおける適切な特権を使用する。
ユーザー コードからサーバー外部のリソースへのアクセスを禁止するための制御機能を備える。ユーザー コードの使用は、ローカル データのアクセスおよびコンピューティングに限定する。
ユーザー定義コードは、SQL Server プロセスで実行されることにより、システム リソースへの未承認のアクセスを取得できないようにする必要があります。
CLR のコード アクセス ベースのセキュリティ モデルを持つ SQL Server。 このセクションでは、このようにセキュリティ モデルを組み合わせたアプローチによるメリットの一部を紹介します。
次の表に、このセクションのトピックを示します。
CLR 統合コード アクセス セキュリティ
マネージド コードのコード アクセス セキュリティ (CAS) モデルについて説明します。
ホスト保護属性と CLR 統合プログラミング
SAFE アセンブリおよび EXTERNAL_ACCESS アセンブリで許可されていないホスト保護属性 (HPA) 値に関する情報を提供します。
CLR Integration Security のリンク
ユーザー コードの一部が SQL Server で相互に呼び出す方法について説明します。
偽装と CLR 統合セキュリティ
偽装を使用してマネージド コードが外部リソースにアクセスする方法について説明します。
部分的に信頼された呼び出し元を許可する
マネージド メソッドが別のアセンブリに含まれるクラス内のメソッドを呼び出すときに発生する問題について説明します。
アプリケーション ドメインと CLR 統合のセキュリティ
アセンブリをアプリケーション ドメインに読み込む方法について説明します。