共通言語ランタイム (CLR) は、SQL Server 2005 以降の SQL Server など、CLR のホストにとって関心のある特定の属性を使用して、.NET Framework の一部であるマネージド アプリケーション プログラミング インターフェイス (API) に注釈を付けるメカニズムを提供します。 このような HPA (ホスト保護属性) の例としては、次のものがあります。
SharedState
:API が共有状態 (静的クラス フィールドなど) を作成または管理する機能を公開するかどうかを示します。Synchronization
: API がスレッド間の同期を実行する機能を公開するかどうかを示します。ExternalProcessMgmt
: API がホスト プロセスを制御する方法を公開するかどうかを示します。
これらの属性を指定すると、SQL Server は、コード アクセス セキュリティ (CAS) によってホスト環境で許可されていない HPA の一覧を指定します。 CAS 要件は、SAFE
、EXTERNAL_ACCESS
、または UNSAFE
の 3 つの SQL Server アクセス許可セットのいずれかで指定されます。
CREATE ASSEMBLY
ステートメントを使用して、アセンブリがサーバーに登録されるときに、これら 3 つのセキュリティ レベルのいずれかが指定されます。
SAFE
または EXTERNAL_ACCESS
アクセス許可セット内で実行するコードでは、System.Security.Permissions.HostProtectionAttribute
属性が適用されている特定の型またはメンバーを回避する必要があります。 詳細については、「 アセンブリの作成 」および「 CLR 統合プログラミング モデルの制限」を参照してください。
HostProtectionAttribute
は、ホストが許可しない可能性のある特定のコードコンストラクト (型またはメソッド) を識別するという点で、信頼性を向上させる方法ほどセキュリティアクセス許可ではありません。
HostProtectionAttribute
を使用すると、ホストの安定性を保護するのに役立つプログラミング モデルが適用されます。
ホスト保護属性
HPA は、ホスト プログラミング モデルに適合しない型またはメンバーを識別し、次の高まるレベルの信頼性の脅威を表します。
他の場合には特に害のない脅威
サーバーで実行されるマネージ ユーザー コードの不安定化につながる脅威
サーバー プロセス自体の不安定化につながる脅威
SQL Server では、HostProtectionAttribute
、System.Security.Permissions.HostProtectionResource
、ExternalProcessMgmt
、ExternalThreading
、MayLeakOnAbort
、SecurityInfrastructure
、SelfAffectingProcessMgmnt
、SelfAffectingThreading
、または 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 の型およびメンバーの一覧を示します。