CLR 統合のセキュリティCLR Integration Security

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) 適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions)

SQL ServerSQL Server CLR (共通言語ランタイム) と .NET Framework.NET Framework を統合したセキュリティ モデルは、SQL ServerSQL Server 内で使用されるさまざまな種類の CLR オブジェクトと CLR 以外のオブジェクトとの間のアクセスを管理し、セキュリティで保護します。The security model of the SQL ServerSQL Server integration with the .NET Framework.NET Framework common language runtime (CLR) manages and secures access between different types of CLR and non-CLR objects running within SQL ServerSQL Server. これらのオブジェクトは、Transact-SQLTransact-SQL ステートメントやサーバー内で使用される別の CLR オブジェクトから呼び出すことができます。These objects may be called by a Transact-SQLTransact-SQL statement or another CLR object running in the server. オブジェクト間の呼び出しをリンクと呼びます。The calls between objects are referred to as links. このようなオブジェクトに対して実行されるセキュリティ チェックの種類は、関連するリンクの種類によって異なります。The types of security checks performed on these objects depend on the types of links involved.

CLR 統合のセキュリティ モデルは、次のことを目標にしています。The CLR integration security model has the following goals:

  • 既定で、SQL ServerSQL Server に対するマネージド ユーザー コードの実行によって、SQL ServerSQL Server の整合性や安定性が損なわれることのないようにする。By default, running managed user code on SQL ServerSQL Server should not compromise the integrity and stability of SQL ServerSQL Server. SQL ServerSQL Server の堅牢性を侵害する可能性のある操作の実行は、レベルの高い適切な権限によって保護されるようにする。Performing operations that potentially compromise the robustness of SQL ServerSQL Server should be protected by appropriate high-level permissions.

  • マネージド ユーザー コードは、データベース内のユーザー データや他のユーザー コードに対して、未承認のアクセスを行わない。Managed user code should not gain unauthorized access to user data or other user code in the database. ユーザー定義コードは、そのコードを呼び出したユーザー セッションのセキュリティ コンテキストで実行する。実行には、そのセキュリティ コンテキストにおける適切な特権を使用する。User-defined code should run under the security context of the user-session that invoked it, and with the correct privileges for that security context.

  • ユーザー コードからサーバー外部のリソースへのアクセスを禁止するための制御機能を備える。ユーザー コードの使用は、ローカル データのアクセスおよびコンピューティングに限定する。There should be controls for restricting user code from accessing any resources outside the server, using it strictly for local data access and computation.

  • SQL ServerSQL Server プロセスで実行することによって、ユーザー定義コードがシステム リソースへの未承認のアクセス手段を獲得してはならない。User-defined code should not be able to gain unauthorized access to system resources by virtue of running in the SQL ServerSQL Server process.

SQL ServerSQL Server では、SQL ServerSQL Server のユーザーベースのセキュリティ モデルと CLR のコード アクセスベースのセキュリティ モデルが統合されました。now integrates the user-based security model of SQL ServerSQL Server with the code access-based security model of the CLR. このセクションでは、このようにセキュリティ モデルを組み合わせたアプローチによるメリットの一部を紹介します。Some of the advantages of this combined approach to security are discussed in this section.

次の表に、このセクションの各トピックの一覧を示します。The following table lists the topics in this section.

CLR 統合のコード アクセス セキュリティCLR Integration Code Access Security
マネージド コードのコード アクセス セキュリティ (CAS) モデルについて説明します。Discusses the code access security (CAS) model for managed code.

ホスト保護属性と CLR 統合プログラミングHost Protection Attributes and CLR Integration Programming
SAFE アセンブリと EXTERNAL_ACCESS アセンブリで許可されていないホスト保護属性 (HPA) の値に関する情報を提供します。Provides information about the host protection attribute (HPA) values that are disallowed in SAFE and EXTERNAL_ACCESS assemblies.

CLR 統合のセキュリティのリンクLinks in CLR Integration Security
SQL ServerSQL Server 内のユーザー コードが相互に呼び出すしくみを説明します。Describes how pieces of user-code can call each other in SQL ServerSQL Server.

権限借用と CLR 統合のセキュリティImpersonation and CLR Integration Security
権限借用を使用してマネージド コードが外部リソースにアクセスするしくみを説明します。Discusses how managed code accesses external resources using impersonation.

マネージド メソッドが別のアセンブリに含まれるクラスのメソッドを起動する際に生じる問題について説明します。Discusses issues that arise when a managed method invokes a method in a class contained in another assembly.

アプリケーション ドメインと CLR 統合のセキュリティApplication Domains and CLR Integration Security
アセンブリがアプリケーション ドメインに読み込まれるしくみを説明します。Describes how assemblies are loaded into application domains.

参照See Also

CLR 統合アセンブリの管理Managing CLR Integration Assemblies