次の方法で共有


ホスト保護属性と CLR 統合プログラミング

共通言語ランタイム (CLR) は、SQL Server 2005 以降の SQL Server など、CLR のホストにとって関心のある特定の属性を使用して、.NET Framework の一部であるマネージド アプリケーション プログラミング インターフェイス (API) に注釈を付けるメカニズムを提供します。 このような HPA (ホスト保護属性) の例としては、次のものがあります。

  • SharedState:API が共有状態 (静的クラス フィールドなど) を作成または管理する機能を公開するかどうかを示します。

  • Synchronization: API がスレッド間の同期を実行する機能を公開するかどうかを示します。

  • ExternalProcessMgmt: API がホスト プロセスを制御する方法を公開するかどうかを示します。

これらの属性を指定すると、SQL Server は、コード アクセス セキュリティ (CAS) によってホスト環境で許可されていない HPA の一覧を指定します。 CAS 要件は、SAFEEXTERNAL_ACCESS、または UNSAFEの 3 つの SQL Server アクセス許可セットのいずれかで指定されます。 CREATE ASSEMBLY ステートメントを使用して、アセンブリがサーバーに登録されるときに、これら 3 つのセキュリティ レベルのいずれかが指定されます。 SAFE または EXTERNAL_ACCESS アクセス許可セット内で実行するコードでは、System.Security.Permissions.HostProtectionAttribute 属性が適用されている特定の型またはメンバーを回避する必要があります。 詳細については、「 アセンブリの作成 」および「 CLR 統合プログラミング モデルの制限」を参照してください。

HostProtectionAttributeは、ホストが許可しない可能性のある特定のコードコンストラクト (型またはメソッド) を識別するという点で、信頼性を向上させる方法ほどセキュリティアクセス許可ではありません。 HostProtectionAttribute を使用すると、ホストの安定性を保護するのに役立つプログラミング モデルが適用されます。

ホスト保護属性

HPA は、ホスト プログラミング モデルに適合しない型またはメンバーを識別し、次の高まるレベルの信頼性の脅威を表します。

  • 他の場合には特に害のない脅威

  • サーバーで実行されるマネージ ユーザー コードの不安定化につながる脅威

  • サーバー プロセス自体の不安定化につながる脅威

SQL Server では、HostProtectionAttributeSystem.Security.Permissions.HostProtectionResourceExternalProcessMgmtExternalThreadingMayLeakOnAbortSecurityInfrastructureSelfAffectingProcessMgmntSelfAffectingThreading、または SharedStateの値を持つ Synchronization 列挙体を指定する UI を持つ型またはメンバーの使用を禁止します。 これにより、共有状態を有効にし、同期を実行し、終了時にリソースを漏洩する可能性があり、SQL Server プロセスの整合性に影響を与えるメンバーの呼び出しをアセンブリに禁止します。

許可されていない型とメンバー

次のトピックでは、SQL Server によって HostProtectionResource 値が許可されていない型とメンバーについて説明します。

これらのトピックの一覧は、サポートされているアセンブリから生成されました。 詳細については、「 サポートされている .NET Framework ライブラリ」を参照してください。

このセクションにて

Microsoft.VisualBasic.dllで許可されていない型とメンバー
HPA の値が許可されない Microsoft.VisualBasic.dll の型およびメンバーの一覧を示します。

mscorlib.dllで許可されていない型とメンバー
HPA の値が許可されない mscorlib.dll の型およびメンバーの一覧を示します。

System.dllで許可されていない型とメンバー
HPA の値が許可されない System.dll の型およびメンバーの一覧を示します。

System.Data.dllで許可されていない型とメンバー
HPA の値が許可されない System.Data.dll の型およびメンバーの一覧を示します。

System.Core.dllで許可されていない型とメンバー
HPA の値が許可されない System.Core.dll の型およびメンバーの一覧を示します。

こちらもご覧ください

CLR 統合コード アクセス セキュリティ
CLR 統合プログラミング モデルの制限事項
アセンブリの作成