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