CLR 統合のセキュリティ

適用対象:SQL Server

.NET Framework共通言語ランタイム (CLR) とのSQL Server統合のセキュリティ モデルは、さまざまな種類の CLR オブジェクトと、SQL Server内で実行されている 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 統合のセキュリティ
アセンブリがアプリケーション ドメインに読み込まれるしくみを説明します。

参照

CLR 統合アセンブリの管理