次の方法で共有


Impersonation サンプル

更新 : 2005 年 12 月 5 日

Impersonation サンプルでは、統合セキュリティを使用している場合に、クライアントから渡される資格情報を使用してオペレーティング システムの保護されたリソース (ファイルなど) へアクセスするための、権限借用の使用方法を示します。既定では、これらのリソースにアクセスする場合には、SQL Server を実行するアカウントの資格情報が使用されます。

ms160785.note(ja-jp,SQL.90).gifメモ :
この権限の借用によって、テーブルなど、SQL Server の保護されたリソースへのアクセスが影響を受けることはありません。ただし、ADO.NET を経由して他のデータベース サーバー (SQL Server または別の種類のデータベース サーバー) へのデータ アクセスを実行する場合は影響を受けます。この場合、クライアントの資格情報をリモート サーバーへ渡すためには、接続での Open メソッドの実行時に権限借用を使用する必要があります。他の ADO.NET の呼び出し中には権限借用は必要ありません。

このサンプルには、共通言語ランタイム (CLR) テーブル値関数を使用して、ディレクトリに含まれるファイルに関する情報にアクセスする方法も示されています。

インストール ディレクトリは、drive:\Program Files\Microsoft SQL Server\90\Samples\Engine\Programmability\CLR\Impersonation\ です。

シナリオ

Jane は Adventure Works Cycles の開発者です。彼女は、クライアントから渡された資格情報を使用して、サーバー上のディレクトリ内のファイルに関する情報にアクセスする必要があります。

言語

Transact-SQL、Visual C#、および Visual Basic。

機能

Impersonation サンプルは、SQL Server の次の機能を使用します。

アプリケーション エリア 機能

全体

CLR、セキュリティ

前提条件

このサンプルを実行する前に、次のソフトウェアがインストールされていることを確認してください。

  • Microsoft SQL Server 2005 または Microsoft SQL Server 2005 Express Edition (SQL Server Express)。SQL Server Express は、SQL Server 2005 Express Edition ドキュメントとサンプルの Web サイトから無償で入手できます。
  • SQL Server 2005 に付属の AdventureWorks データベース。SQL Server デベロッパー Web サイトからも入手できます。
  • SQL Server 2005 データベース エンジンのサンプル。これらのサンプルは SQL Server 2005 に含まれています。これらの最新バージョンは、SQL Server デベロッパー Web サイトからダウンロードできます。
  • .NET Framework SDK 2.0 または Microsoft Visual Studio 2005。.NET Framework SDK は無償で入手できます。詳細については、「.NET Framework SDK のインストール」を参照してください。

サンプルのビルド

まだ厳密な名前のキー ファイル ExternalSampleKey.snk を作成していない場合は、次の手順に従ってキー ファイルを生成します。

厳密な名前のキー ファイルを生成するには

  1. Microsoft Visual Studio 2005 コマンド プロンプトを開きます。[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Visual Studio 2005][Visual Studio Tools] の順にポイントして、[Visual Studio 2005 コマンド プロンプト] をクリックします。

    または

    Microsoft .NET Framework コマンド プロンプトを開きます。[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft .NET Framework SDK v2.0] の順にポイントして、[SDK コマンド プロンプト] をクリックします。

  2. コマンド プロンプトでディレクトリ変更 (CD) コマンドを使用して、コマンド プロンプト ウィンドウの現在のフォルダを Samples フォルダに変更します。

    ms160785.note(ja-jp,SQL.90).gifメモ :
    サンプルが配置されているフォルダを調べるには、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft SQL Server 2005][マニュアルとチュートリアル] の順にポイントして、[サンプル ディレクトリ] をクリックします。既定のインストール場所を使用している場合、サンプルは <system_drive>:\Program Files\Microsoft SQL Server\90\Samples にあります。
  3. コマンド プロンプトで、次のコマンドを実行してキー ファイルを生成します。

    sn -k ExternalSampleKey.snk

    ms160785.note(ja-jp,SQL.90).gif重要 :
    厳密な名前のキー ペアの詳細については、MSDN の .NET Development Center にある「Security Briefs: Strong Names and Security in the .NET Framework」を参照してください。

Impersonation サンプルをビルドするには

  1. Visual Studio 2005 および提供されている Visual Studio ソリューションを使用するか、.NET Framework SDK 2.0 に含まれている Microsoft MSBuild を使用して、サンプルをコンパイルします。コマンド プロンプトで、次のようなコマンドを実行します。

    msbuild /nologo /verbosity:quiet /property:Configuration=Debug CS\ Impersonation.sln

  2. AdventureWorks データベースがインストールされていることを確認します。

  3. 既定の場所に SQL Server エンジン サンプルをインストールしていない場合、サンプルがインストールされている場所を参照するように、Scripts\InstallCS.sql スクリプトと Scripts\InstallVB.sql スクリプトの CREATE ASSEMBLY 部のパスを変更します。

  4. 使用している SQL Server インスタンスの管理者でない場合は、インストールを完了するために CreateAssembly 権限が管理者から付与されている必要があります。

  5. Visual C# プロジェクトと Visual Basic プロジェクトのどちらをコンパイルしたかに応じて、Microsoft SQL Server Management Studio でファイル scripts\installCS.sql または scripts\installVB.sql を開きます。ファイルに含まれているスクリプトを実行するか、コマンド プロンプトで次のようなコマンドを実行します。

    sqlcmd -E -I -i Scripts\InstallCS.sql

サンプルの実行

Impersonation サンプルを実行するには

  1. [マイ ドキュメント] フォルダで「テスト」という名前のフォルダを作成します。

  2. メモ帳を使用して、フォルダ内に空のテキスト ファイルを作成します。

  3. Windows エクスプローラの [プロパティ] ダイアログ ボックスを使用して、フォルダのセキュリティを調整します。

    1. [セキュリティ] タブの [詳細] を使用して、親フォルダからのフォルダのセキュリティ設定の継承を無効にします。
    2. [コピー] オプションを使用して、親のセキュリティ設定をコピーします。
    3. フォルダの完全な権限を持つユーザーとして追加します。
    4. 他のユーザーをすべて削除します。
  4. Management Studio またはメモ帳で scripts\test.sql ファイルを開きます。このファイル内の記述を変更して、SELECT @TestDir ステートメントで GetEnvironmentVariable メソッドを呼び出す代わりに、@TestDir 変数の値に定数文字列を指定します。コードは次のようになります。

    SELECT @TestDir = 'C:\Documents and Settings\username\My Documents\Test\'

    username は実際のユーザー名に置き換えます。

Management Studio でスクリプトを実行するか、メモ帳で変更したファイルを保存して、コマンド プロンプトで次のコマンドを実行します。

sqlcmd -E -I -i Scripts\test.sql

サンプルの削除

Impersonation サンプルを削除するには

  1. Management Studio で scripts\cleanup.sql ファイルを開きます。ファイルに含まれているスクリプトを実行するか、コマンド プロンプトで次のコマンドを実行します。

    sqlcmd -E -I -i Scripts\cleanup.sql

コメント

このサンプルを正しく機能させるためには、SQL Server 2005 または SQL Server Express の CLR を有効にする必要があります。

サンプルは、演習目的で利用するためにのみ提供されています。サンプルを運用環境で使用することは想定されていないため、運用環境でのサンプルのテストは行われていません。Microsoft では、これらのサンプルに関する製品サポート サービスを提供していません。システム管理者の承認を得ることなく、サンプル アプリケーションやサンプル アセンブリを、運用中の SQL Server データベースやレポート サーバーに接続したり、これらのデータと共に使用することは避けてください。

参照

その他の技術情報

SqlContext オブジェクト

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

変更した内容 :
  • キー ファイルの名前や場所など、キー ファイルを生成する手順を変更しました。