CLR 統合のセキュリティ

.NET Framework CLR (共通言語ランタイム) と SQL Server を統合したセキュリティ モデルは、SQL Server 内で使用されるさまざまな種類の CLR オブジェクトと CLR 以外のオブジェクトとの間のアクセスを管理し、セキュリティで保護します。これらのオブジェクトは、Transact-SQL ステートメントやサーバー内で使用される別の CLR オブジェクトから呼び出すことができます。オブジェクト間の呼び出しをリンクと呼びます。このようなオブジェクトに対して実行されるセキュリティ チェックの種類は、関連するリンクの種類によって異なります。

CLR 統合のセキュリティ モデルは、次のことを目標にしています。

  • 既定で、SQL Server に対するマネージ ユーザー コードの実行によって、SQL Server の整合性や安定性が損なわれることのないようにする。SQL Server の堅牢性を侵害する可能性のある操作の実行は、レベルの高い適切な権限によって保護されるようにする。

  • マネージ ユーザー コードは、データベース内のユーザー データや他のユーザー コードに対して、未承認のアクセスを行わない。ユーザー定義コードは、そのコードを呼び出したユーザー セッションのセキュリティ コンテキストで実行する。実行には、そのセキュリティ コンテキストにおける適切な特権を使用する。

  • ユーザー コードからサーバー外部のリソースへのアクセスを禁止するための制御機能を備える。ユーザー コードの使用は、ローカル データのアクセスおよびコンピューティングに限定する。

  • SQL Server プロセスで実行することによって、ユーザー定義コードがシステム リソースへの未承認のアクセス手段を獲得してはならない。

SQL Server では、SQL Server のユーザーベースのセキュリティ モデルと CLR のコード アクセスベースのセキュリティ モデルが統合されました。このセクションでは、このようにセキュリティ モデルを組み合わせたアプローチによるメリットの一部を紹介します。

このセクションのトピックでは、次の内容について説明します。