テーブルの操作
公開日: 2009 年 6 月 29 日 (作業者: SaadL (英語))
更新日: 2009 年 6 月 29 日 (作業者: SaadL (英語))
必要条件
このチュートリアルでは、次のような環境を前提としています。
- 1. IIS Database Manager が Web サーバーにインストールされていること (DB Manager のダウンロード サイトへのリンク>)。
- データベース サーバー (Web サーバーと同じ物理コンピューター上でも可)。
ステージのセットアップ
このチュートリアルではシナリオを使用して、架空のサイト www.fabrikam.com にあるリソースのアクセス制御リストを作成します。そのために、2 つのテーブルを作成します。
最初のテーブル "FabrikamUsers" には、各ユーザーのユーザー ID、ユーザー名、および電子メール アドレスが格納されます。
2 番目のテーブル "AccessControls" には、ユーザー ID への参照、リソース URL、およびユーザーがリソースにアクセスできるかどうかが格納されます。
新しいテーブルの作成
新しいテーブルを作成するには、次の手順を実行します。
インターネット インフォメーション サービス (IIS) マネージャーを開きます。
Database Manager を開き、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
[テーブル] ノードを右クリックし、[新しいテーブル] をクリックします。
エディター領域に新しいテーブルが表示されます。ツールバーのボタンの機能は次のとおりです。- [新しい列]: テーブル定義に新しい列を追加できます。
- [列の削除]: テーブル定義の既存の列を削除できます。
- [インデックス/キー]: テーブルのインデックスまたは主キーを定義できます。
- [リレーションシップ]: テーブルの外部キーのリレーションシップを定義できます。
- [保存]: テーブルに対する変更を保存できます。
ツールバーの [新しい列] をクリックします。新しい列が作成され、[列のプロパティ] ウィンドウが表示されます。
[列のプロパティ] で、次の手順を実行します。
- 列の名前として「UserId」と入力します。
- [Null を許容] を [False] に設定します。
- [データ型] を [int] に設定します。
- [既定値] を空白のままにします。
- [IsIdentity] を [True] に設定します。
[インデックス/キー] アイコンをクリックして、このフィールドを主キーにします。新しいダイアログ ボックスが開きます。
このダイアログ ボックスで、[追加] をクリックし、主キーの情報を次のように入力します。
- [列] を [UserId] に設定します。
- [一意である] を [True] に設定します。
- [種類] を [主キー] に設定します。
- [名前] を [PK_UserId] に設定します。
[閉じる] をクリックしてダイアログ ボックスを閉じます。
ツールバーの [新しい列] をクリックして、ユーザー名用の別の列を追加します。
[列のプロパティ] で、次の手順を実行します。
- 列の名前として「Username」と入力します。
- [Null を許容] を [False] に設定します。
- [データ型] を [varchar] に設定します。
- [長さ] を [50] に設定します。
最後に、ツールバーの [新しい列] をクリックして、電子メール アドレス用の別の列を追加します。
[列のプロパティ] で、次の手順を実行します。
- 列の名前として「Email」と入力します。
- [Null を許容] を [True] に設定します。
- [データ型] を [varchar] に設定します。
- [長さ] を [100] に設定します。
ツールバーの [保存] をクリックすると、保存ダイアログ ボックスが表示されます。
[テーブル名] に「FabrikamUsers」と入力します。スキーマを指定することも、[スキーマ名] フィールドを空白のままにしてデータベース ユーザー用の既定のスキーマを使用することもできます。
次に、"AccessControls" テーブルを定義します。前述の手順と同様の手順を実行します。
- [テーブル] ノードを右クリックし、[新しいテーブル] をクリックします。エディター領域に新しいテーブルが表示されます。
- ツールバーの [新しい列] をクリックします。新しい列が作成され、[列のプロパティ] ウィンドウが表示されます。
- [列のプロパティ] で、次の手順を実行します。
- 列の名前として「ACId」と入力します。
- [Null を許容] を [False] に設定します。
- [データ型] を [int] に設定します。
- [既定値] を空白のままにします。
- [IsIdentity] を [True] に設定します。
- [インデックス/キー] アイコンをクリックして、このフィールドを主キーにします。新しいダイアログ ボックスが開きます。
- このダイアログ ボックスで、[追加] をクリックし、主キーの情報を次のように入力します。
- [列] を [ACId] に設定します。
- [一意である] を [True] に設定します。
- [種類] を [主キー] に設定します。
- [名前] を [PK_ACId] に設定します。
- [閉じる] をクリックしてダイアログ ボックスを閉じます。
- ツールバーの [新しい列] をクリックして、参照されるユーザー名用の別の列を追加します。
- [列のプロパティ] で、次の手順を実行します。
- 列の名前として「UserId」と入力します。
- [Null を許容] を [False] に設定します。
- [データ型] を [int] に設定します。
- [IsIdentity] を [False] に設定します。
- ツールバーの [新しい列] をクリックして、リソース用の別の列を追加します。
- [列のプロパティ] で、次の手順を実行します。
- 列の名前として「ResourceURL」と入力します。
- [Null を許容] を [False] に設定します。
- [データ型] を [varchar] に設定します。
- [長さ] を [200] に設定します。
- 最後に、ツールバーの [新しい列] をクリックして、アクセス権を指定するための別の列を追加します。
- [列のプロパティ] で、次の手順を実行します。
- 列の名前として「IsUserAllowed」と入力します。
- [Null を許容] を [False] に設定します。
- [データ型] を [Bit] に設定します。
- [既定値] を [False] に設定します。
- ツールバーの [保存] をクリックすると、保存ダイアログ ボックスが表示されます。
- [テーブル名] に「AccessControls」と入力します。スキーマを指定することも、[スキーマ名] フィールドを空白のままにしてデータベース ユーザー用の既定のスキーマを使用することもできます。
既存のテーブルの変更
Database Manager を使用すると、既存のテーブルの定義を編集できます。具体的には、次のような作業を行うことができます。
- 列を追加、変更、または削除します。
- 主キーを追加、変更、または削除します。
- 外部キーのリレーションシップを追加、変更、または削除します。
"FabrikamUsers" と "AccessControls" という 2 つのテーブルを作成したので、この 2 つをリンクします。"AccessControls" テーブルを編集し、"FabrikamUsers" テーブルへの外部キーのリレーションシップを追加する必要があります。
- IIS マネージャーを開き、Database Manager を開きます。
- Database Manager のツリー ビューで、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
- [テーブル] ノードを展開します。"FabrikamUsers" と "AccessControls" を含む、すべてのデータベース テーブルの一覧が表示されます。
- [AccessControls] をクリックし、ツールバーの [テーブル定義を開く] をクリックします。テーブル デザイン ビューが開き、「新しいテーブルの作成(英語)」で作成した列が表示されます。
- テーブル デザイン ビューのツールバーで、[リレーションシップ] をクリックします。[外部キーのリレーションシップ] ダイアログ ボックスが表示されます。
- [追加] をクリックします。新しい外部キーのリレーションシップ エディターが表示されます。
- 外部キーのリレーションシップ エディターで、[テーブルと列の指定] をクリックし、[...] (省略記号) ボタンをクリックします。[テーブルと列] ダイアログ ボックスが表示されます。
- [リレーションシップ名] フィールドで、「FK_AccessControlsForUsers」と入力します。
- [主キー テーブル] のドロップダウン リストで、[FabrikamUsers] をクリックします。これで、"FabrikamUsers" テーブルの主キーのドロップダウン リストが表示されます。[UserId] が選択されていることを確認します。
- 2 番目のドロップダウン リストに、"AccessControls" の列の一覧が表示されます。[UserId] をクリックし、ダイアログ ボックスの [OK] をクリックしてダイアログ ボックスを閉じます。
- [外部キーのリレーションシップ] ダイアログ ボックスの [閉じる] をクリックします。
- [保存] をクリックしてテーブルを更新します。これで、[FabrikamUsers] テーブルと [AccessControls" テーブルのリレーションシップが作成されました。
テーブル データの変更
Database Manager を使用すると、既存のテーブルのデータを編集できます。具体的には、次のような作業を行うことができます。
- 新しい行を追加します。
- 既存の行の値を変更します (サポートされるデータ型 <サポートされるデータ型へのリンク> で使用可能)。
- 既存の行を削除します。
まず、"FabrikamUsers" テーブルと "AccessControls" テーブルにユーザー情報を設定してみます。
- IIS マネージャーを開き、Database Manager を開きます。
- Database Manager のツリー ビューで、データベース接続ノードを展開します (データベースへの接続の作成の詳細については、「IIS Database Manager の基本」を参照してください)。
- [テーブル] ノードを展開します。"FabrikamUsers" と "AccessControls" を含む、すべてのデータベース テーブルの一覧が表示されます。
- [FabrikamUsers] を右クリックし、[テーブル データの表示] をクリックします。テーブル内のデータが表示されます。先頭に "*" が表示されている行は、新しいデータを入力するために使用できます。
- 新しい行 (*) で、[Username] 列をクリックし、「John Doe」と入力します。次に、[Email] 列をクリックし、「JohnDoe@fabrikam.com」を入力します。
- 新しい行に情報を入力したら、Enter キーを押します。これで情報がデータベースに保存されます。[UserId] フィールドは ID として指定されているので、自動的にインクリメントされた値が入力されます。
- サンプル ユーザー名と電子メール アドレスの行を数行追加します。
- [AccessControls] を右クリックし、[テーブル データの表示] をクリックします。テーブル内のデータが表示されます。先頭に "*" が表示されている行は、新しいデータを入力するために使用できます。
- 新しい行 (*) で、[UserId] 列をクリックし、「1」を入力します。この UserId 値を入力すると、"FabrikamUsers" テーブルの最初のレコード (この例では、"John Doe") が指定されます。
- 次に、[ResourceURL] 列をクリックして「admin.aspx」と入力し、[IsUserAllowed] 列に [True] と入力します。これは、ユーザー "John Doe" が架空のサイトの admin.aspx ページにアクセスできることを意味します。
- 他のユーザーについても、サンプルのアクセス権の行を数行追加します。
テーブルにデータが追加されたので、既存の行を変更したり、削除したりしてみます。
- 変更するテーブルのセルをクリックします。セルに新しい値を入力します。編集中の行の横に鉛筆のアイコンが表示されます。
- 別のセルをクリックするか、テーブルを閉じて情報を保存します。情報がサーバーに保存されると、鉛筆のアイコンが消えます。
- 次に、行の左側の矢印をクリックして行を選択し、ツールバーの [削除] をクリックします。削除の前に確認を求めるダイアログ ボックスが表示されます。
- [はい] をクリックすると、その行の情報がサーバーから削除されます。