CLR 統合セキュリティ

適用対象: SQL サーバー

SQL Server と .NET Framework 共通言語ランタイム (CLR) の統合のセキュリティ モデルは、さまざまな種類の 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 統合アセンブリの管理