テーブルの操作

公開日: 2009 年 6 月 29 日 (作業者: SaadL (英語))

更新日: 2009 年 6 月 29 日 (作業者: SaadL (英語))

必要条件

このチュートリアルでは、次のような環境を前提としています。

  1. 1. IIS Database Manager が Web サーバーにインストールされていること (DB Manager のダウンロード サイトへのリンク>)。
  2. データベース サーバー (Web サーバーと同じ物理コンピューター上でも可)。

ステージのセットアップ

このチュートリアルではシナリオを使用して、架空のサイト www.fabrikam.com にあるリソースのアクセス制御リストを作成します。そのために、2 つのテーブルを作成します。

最初のテーブル "FabrikamUsers" には、各ユーザーのユーザー ID、ユーザー名、および電子メール アドレスが格納されます。
2 番目のテーブル "AccessControls" には、ユーザー ID への参照、リソース URL、およびユーザーがリソースにアクセスできるかどうかが格納されます。
Ff454137.Fig1-DBDiagram(ja-jp,TechNet.10).png

新しいテーブルの作成

新しいテーブルを作成するには、次の手順を実行します。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。

  3. [テーブル] ノードを右クリックし、[新しいテーブル] をクリックします。
    Ff454137.Fig2-NewTableIcon(ja-jp,TechNet.10).png
    エディター領域に新しいテーブルが表示されます。ツールバーのボタンの機能は次のとおりです。

    1. [新しい列]: テーブル定義に新しい列を追加できます。
    2. [列の削除]: テーブル定義の既存の列を削除できます。
    3. [インデックス/キー]: テーブルのインデックスまたは主キーを定義できます。
    4. [リレーションシップ]: テーブルの外部キーのリレーションシップを定義できます。
    5. [保存]: テーブルに対する変更を保存できます。 Ff454137.Fig3-NewTableToolbar(ja-jp,TechNet.10).png
  4. ツールバーの [新しい列] をクリックします。新しい列が作成され、[列のプロパティ] ウィンドウが表示されます。

  5. [列のプロパティ] で、次の手順を実行します。

    1. 列の名前として「UserId」と入力します。
    2. [Null を許容] を [False] に設定します。
    3. [データ型] を [int] に設定します。
    4. [既定値] を空白のままにします。
    5. [IsIdentity] を [True] に設定します。 Ff454137.Fig4-NewColumnEditor(ja-jp,TechNet.10).png
  6. [インデックス/キー] アイコンをクリックして、このフィールドを主キーにします。新しいダイアログ ボックスが開きます。
    Ff454137.Fig5-PrimaryKeyIcon(ja-jp,TechNet.10).png

  7. このダイアログ ボックスで、[追加] をクリックし、主キーの情報を次のように入力します。

    1. [列] を [UserId] に設定します。
    2. [一意である] を [True] に設定します。
    3. [種類] を [主キー] に設定します。
    4. [名前] を [PK_UserId] に設定します。

    Ff454137.Fig6-PrimaryKeyDialog(ja-jp,TechNet.10).png

  8. [閉じる] をクリックしてダイアログ ボックスを閉じます。

  9. ツールバーの [新しい列] をクリックして、ユーザー名用の別の列を追加します。

  10. [列のプロパティ] で、次の手順を実行します。

    1. 列の名前として「Username」と入力します。
    2. [Null を許容] を [False] に設定します。
    3. [データ型] を [varchar] に設定します。
    4. [長さ] を [50] に設定します。
  11. 最後に、ツールバーの [新しい列] をクリックして、電子メール アドレス用の別の列を追加します。

  12. [列のプロパティ] で、次の手順を実行します。

    1. 列の名前として「Email」と入力します。
    2. [Null を許容] を [True] に設定します。
    3. [データ型] を [varchar] に設定します。
    4. [長さ] を [100] に設定します。
  13. ツールバーの [保存] をクリックすると、保存ダイアログ ボックスが表示されます。
    Ff454137.Fig7-SaveIcon(ja-jp,TechNet.10).png

  14. [テーブル名] に「FabrikamUsers」と入力します。スキーマを指定することも、[スキーマ名] フィールドを空白のままにしてデータベース ユーザー用の既定のスキーマを使用することもできます。
    Ff454137.Fig8-SaveTableDialog(ja-jp,TechNet.10).png

次に、"AccessControls" テーブルを定義します。前述の手順と同様の手順を実行します。

  1. [テーブル] ノードを右クリックし、[新しいテーブル] をクリックします。エディター領域に新しいテーブルが表示されます。
  2. ツールバーの [新しい列] をクリックします。新しい列が作成され、[列のプロパティ] ウィンドウが表示されます。
  3. [列のプロパティ] で、次の手順を実行します。
    1. 列の名前として「ACId」と入力します。
    2. [Null を許容] を [False] に設定します。
    3. [データ型] を [int] に設定します。
    4. [既定値] を空白のままにします。
    5. [IsIdentity] を [True] に設定します。
  4. [インデックス/キー] アイコンをクリックして、このフィールドを主キーにします。新しいダイアログ ボックスが開きます。
  5. このダイアログ ボックスで、[追加] をクリックし、主キーの情報を次のように入力します。
    1. [列] を [ACId] に設定します。
    2. [一意である] を [True] に設定します。
    3. [種類] を [主キー] に設定します。
    4. [名前] を [PK_ACId] に設定します。
  6. [閉じる] をクリックしてダイアログ ボックスを閉じます。
  7. ツールバーの [新しい列] をクリックして、参照されるユーザー名用の別の列を追加します。
  8. [列のプロパティ] で、次の手順を実行します。
    1. 列の名前として「UserId」と入力します。
    2. [Null を許容] を [False] に設定します。
    3. [データ型] を [int] に設定します。
    4. [IsIdentity] を [False] に設定します。
  9. ツールバーの [新しい列] をクリックして、リソース用の別の列を追加します。
  10. [列のプロパティ] で、次の手順を実行します。
    1. 列の名前として「ResourceURL」と入力します。
    2. [Null を許容] を [False] に設定します。
    3. [データ型] を [varchar] に設定します。
    4. [長さ] を [200] に設定します。
  11. 最後に、ツールバーの [新しい列] をクリックして、アクセス権を指定するための別の列を追加します。
  12. [列のプロパティ] で、次の手順を実行します。
    1. 列の名前として「IsUserAllowed」と入力します。
    2. [Null を許容] を [False] に設定します。
    3. [データ型] を [Bit] に設定します。
    4. [既定値] を [False] に設定します。
  13. ツールバーの [保存] をクリックすると、保存ダイアログ ボックスが表示されます。
    Ff454137.Fig9-ACTableEditor(ja-jp,TechNet.10).png
  14. [テーブル名] に「AccessControls」と入力します。スキーマを指定することも、[スキーマ名] フィールドを空白のままにしてデータベース ユーザー用の既定のスキーマを使用することもできます。

既存のテーブルの変更

Database Manager を使用すると、既存のテーブルの定義を編集できます。具体的には、次のような作業を行うことができます。

  • 列を追加、変更、または削除します。
  • 主キーを追加、変更、または削除します。
  • 外部キーのリレーションシップを追加、変更、または削除します。

"FabrikamUsers" と "AccessControls" という 2 つのテーブルを作成したので、この 2 つをリンクします。"AccessControls" テーブルを編集し、"FabrikamUsers" テーブルへの外部キーのリレーションシップを追加する必要があります。

  1. IIS マネージャーを開き、Database Manager を開きます。
  2. Database Manager のツリー ビューで、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
  3. [テーブル] ノードを展開します。"FabrikamUsers" と "AccessControls" を含む、すべてのデータベース テーブルの一覧が表示されます。
  4. [AccessControls] をクリックし、ツールバーの [テーブル定義を開く] をクリックします。テーブル デザイン ビューが開き、「新しいテーブルの作成(英語)」で作成した列が表示されます。
    Ff454137.Fig10-TableDefIcon(ja-jp,TechNet.10).png
  5. テーブル デザイン ビューのツールバーで、[リレーションシップ] をクリックします。[外部キーのリレーションシップ] ダイアログ ボックスが表示されます。
    Ff454137.Fig11-TableRelIcon(ja-jp,TechNet.10).png
  6. [追加] をクリックします。新しい外部キーのリレーションシップ エディターが表示されます。
  7. 外部キーのリレーションシップ エディターで、[テーブルと列の指定] をクリックし、[...] (省略記号) ボタンをクリックします。[テーブルと列] ダイアログ ボックスが表示されます。
    Ff454137.Fig12-FKEllipsisDialog(ja-jp,TechNet.10).png
  8. [リレーションシップ名] フィールドで、「FK_AccessControlsForUsers」と入力します。
  9. [主キー テーブル] のドロップダウン リストで、[FabrikamUsers] をクリックします。これで、"FabrikamUsers" テーブルの主キーのドロップダウン リストが表示されます。[UserId] が選択されていることを確認します。
  10. 2 番目のドロップダウン リストに、"AccessControls" の列の一覧が表示されます。[UserId] をクリックし、ダイアログ ボックスの [OK] をクリックしてダイアログ ボックスを閉じます。
    Ff454137.Fig13-FKDefDialog(ja-jp,TechNet.10).png
  11. [外部キーのリレーションシップ] ダイアログ ボックスの [閉じる] をクリックします。
    Ff454137.Fig14-FKRelDialog(ja-jp,TechNet.10).png
  12. [保存] をクリックしてテーブルを更新します。これで、[FabrikamUsers] テーブルと [AccessControls" テーブルのリレーションシップが作成されました。

テーブル データの変更

Database Manager を使用すると、既存のテーブルのデータを編集できます。具体的には、次のような作業を行うことができます。

  • 新しい行を追加します。
  • 既存の行の値を変更します (サポートされるデータ型 <サポートされるデータ型へのリンク> で使用可能)。
  • 既存の行を削除します。

まず、"FabrikamUsers" テーブルと "AccessControls" テーブルにユーザー情報を設定してみます。

  1. IIS マネージャーを開き、Database Manager を開きます。
  2. Database Manager のツリー ビューで、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
  3. [テーブル] ノードを展開します。"FabrikamUsers" と "AccessControls" を含む、すべてのデータベース テーブルの一覧が表示されます。
  4. [FabrikamUsers] を右クリックし、[テーブル データの表示] をクリックします。テーブル内のデータが表示されます。先頭に "*" が表示されている行は、新しいデータを入力するために使用できます。
    Ff454137.Fig15-ShowTableDataIcon(ja-jp,TechNet.10).png
  5. 新しい行 (*) で、[Username] 列をクリックし、「John Doe」と入力します。次に、[Email] 列をクリックし、「JohnDoe@fabrikam.com」を入力します。
    Ff454137.Fig16-TableDataView(ja-jp,TechNet.10).png
  6. 新しい行に情報を入力したら、Enter キーを押します。これで情報がデータベースに保存されます。[UserId] フィールドは ID として指定されているので、自動的にインクリメントされた値が入力されます。
  7. サンプル ユーザー名と電子メール アドレスの行を数行追加します。
  8. [AccessControls] を右クリックし、[テーブル データの表示] をクリックします。テーブル内のデータが表示されます。先頭に "*" が表示されている行は、新しいデータを入力するために使用できます。
  9. 新しい行 (*) で、[UserId] 列をクリックし、「1」を入力します。この UserId 値を入力すると、"FabrikamUsers" テーブルの最初のレコード (この例では、"John Doe") が指定されます。
  10. 次に、[ResourceURL] 列をクリックして「admin.aspx」と入力し、[IsUserAllowed] 列に [True] と入力します。これは、ユーザー "John Doe" が架空のサイトの admin.aspx ページにアクセスできることを意味します。
    Ff454137.Fig17-ACTableData(ja-jp,TechNet.10).png
  11. 他のユーザーについても、サンプルのアクセス権の行を数行追加します。

テーブルにデータが追加されたので、既存の行を変更したり、削除したりしてみます。

  1. 変更するテーブルのセルをクリックします。セルに新しい値を入力します。編集中の行の横に鉛筆のアイコンが表示されます。
  2. 別のセルをクリックするか、テーブルを閉じて情報を保存します。情報がサーバーに保存されると、鉛筆のアイコンが消えます。
  3. 次に、行の左側の矢印をクリックして行を選択し、ツールバーの [削除] をクリックします。削除の前に確認を求めるダイアログ ボックスが表示されます。
    Ff454137.Fig18-DeleteRowIcon(ja-jp,TechNet.10).png
  4. [はい] をクリックすると、その行の情報がサーバーから削除されます。