次の方法で共有


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

適用対象: SQL サーバー

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

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

  • 同期: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 では、ExternalProcessMgmtExternalThreading の値を持つSystem.Security.Permissions.HostProtectionResource 列挙型を指定するHostProtectionAttributeを持つ型またはメンバーの使用を禁止します MayLeakOnAbortSecurityInfrastructureSelfAffectingProcessMgmntSelfAffectingThreadingSharedStateSynchronization、または UI。 これにより、共有状態を有効にし、同期を実行し、終了時にリソースを漏洩する可能性があり、SQL Server プロセスの整合性に影響を与えるメンバーの呼び出しをアセンブリに禁止します。

禁止されている型とメンバー

次のトピックでは、 HostProtectionResource 値が SQL Server で許可されていない型とメンバーを特定します。

Note

各トピックに含まれる一覧は、サポートされているアセンブリから作成されたものです。 詳細については、「 サポートされている .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 統合プログラミング モデルの制限事項
アセンブリの作成