SQL Server Express の設定

SQL Server Express (MSSQLE) の設定は SQL Server Management Studio Express (SSMSE) を使用して作成します。ローカルのサーバーにインストールして使用する場合は、共有メモリ接続により接続するため特に何も設定することなく初期状態で接続できます。

リモート接続をする場合の設定は、以下のページにメモをしています。
SQL Server 2008 Express にリモート接続

SSMSE で ローカルの MSSQL に接続する場合はWindows 認証を使えば手軽にできますが、ASP.NET のアプリケーションから Windows 認証で接続する場合は、ユーザーの登録とマッピングが必要になるので以下のページにメモをました。
ASP.NET で MSSQL に Windows 認証で接続

MDF ファイルのアタッチによるデータベースの作成につては、以下にメモをしています。
Express のユーザーインスタンスを利用した作成方法

データベース及びログインアカウントの作成の手順

以下では、ローカルのサーバーに SQL Server 2008 R2 Express がインストールされ、共有メモリ接続により接続する場合の例で説明しています。ローカルのサーバーへ接続する場合は、サーバー名の他に、(local)、localhost、. (ピリオド) も使用することができます。

1.「スタート」->「すべてのプログラム」->「Microsoft SQL Server 2008 R2」->「SQL Server Management Studio Express」の順にクリックして、SSMSE を起動します。
2.SSMSE が起動したら、「サーバーへの接続」のダイアログが表示されるので、サーバー名の項目に、「サーバー名」、「(local)」、「localhost」、「.」のいずれかを入力します。なお、名前付きインスタンスでインストールした場合は、サーバー名の後ろに\インスタンス名を追加します。例えば、インスタンス名を SQLEXPRESSに設定した場合は、「サーバー名\SQLEXPRESS」となります。なお、共有メモリ接続では、サーバー名に IP アドレスを使用することはできません。
「認証」については、SQL Server の管理者に指定したユーザーでマシンにログインしているのであれば「Windows認証」のままで接続することもできるし、「SQL Server 認証」を選択し、ログインには「sa」と入力し、パスワードはインストールの時に設定したパスワードを入力して接続することもできます。なお、sa は、ビルトインのSQL Server のシステム管理者アカウントです。
settings01.png

3.「接続」ボタンをクリックして、サーバーに接続します。
4.データベースの接続したら、Umbraco で使用するデータベースを作成します。「データベース」フォルダーを選択して右クリックして、「新しいデータベース」を選択します。
settings02.png

5.データベース名を入力して(ここでは「umbraco」とします)、「OK」ボタンをクリックします。
settings03.png

6.これでデータベースが作成できたので、ログインアカウントを作成します。「セキュリティ」フォルダーを右クリックして、「新規作成」をクリックして、「ログイン」を選択します。
settings04.png

7.「全般」ページを選択します。
「ログイン名」を入力します(ここでは、umbracouser を使用します)。 SQL Server 認証を選択して、「パスワード」を入力し、「パスワードの確認入力」も入力します。
settings05.png

8.「ユーザー マッピング」ページを選択します。先に作成したデータベース(umbraco)の「マップ」の列のボックスをチェックします。 次に、「umbraco のデータベース ロール メンバシップ」で、「db_owner」にチェックを追加します。入力が終わったら、「OK」 ボタンをクリックします。これで、ログインアカウント umbracouser が作成され、umbracouser は、データベースumbraco に関しては db_owner のメンバーとなるため、テーブルの作成、修正、読込、書込等すべての作業を実行できるようになります。
settings06.png

9.確認のため作成したログインアカウント(umbracouser)で接続します

9-1. 「ファイル」メニューをクリックし、「オブジェクト エクスプローラを切断」をクリックして、接続を切断します。
9-2. 「ファイル」メニューをクリックし、「オブジェクト エクスプローラを接続」をクリックします。
9-3. 下の図のように「サーバーへの接続」ダイアログが表示されます。「認証」は「SQL Server 認証」を選択し、「ログイン」は作成したログインアカウント(umbracouser)を入力し、「パスワード」は先に設定したパスワードを入力します。
settings07.png
9-4. 「接続」ボタンをクリックして、接続できれば SQL Server の設定は完了です。

10.接続できない場合の対応

10-1. ログインアカウント sa で接続できない場合

10-1-1. SQL Server 認証モードが使用可能になっているか確認するため、Windows 認証でサーバーに接続します。
settings08.png

10-1-2. サーバーを右クリックして、プロパティを選択します。
settings09.png

10-1-3. 「セキュリティ」ページを選択して、SQL Server 認証モードが使用可能になっているか確認します。
settings10.png

10-1-4. 次に、ログインアカウント sa が有効になっているかどうか確認します。「セキュリティ」フォルダを展開して、「ログイン」を展開すると「sa」があるので右クリックして、「プロパティ」を選択します。次に、「状態ページ」を選択して、「データベースエンジンに接続する権限」が「許可」になっているか、「ログイン」が「有効」になっているかどうか確認します。
settings11.png

10-1-5. 以上を確認しても原因がわからない場合は、エラーログの確認をします。「管理」フォルダーを展開し、「SQL Server ログ」フォルダーを右クリックし、「表示」をクリックし、「SQL Server ログ」を選択するとログが表示されます。以下のように、ログオンエラーの理由がわかるので、それにより対応します。
2009-05-25 23:45:55.36 ログオン  エラー: 18456、重大度: 14、状態: 8。
2009-05-25 23:45:55.36 ログオン  Login failed for user 'sa'. 理由: パスワードが、指定されたログインのパスワードと一致しませんでした。 [クライアント: <local machine>]
settings12.png

10-2. ログインアカウント sa では接続できるが、umbracouser で接続できない場合
エラーログで理由を確認して対応します。

接続文字列

.NET Framework Data Provider for SQL Server(providerName="System.Data.SqlClient")の場合の接続文字列は、以下のようになります。

・既定のインスタンスでSQL Server 認証の場合

Server=(local);Database=umbraco;User Id=umbracouser;Password=password;
(別の表記)
Data Source=.;Initial Catalog=umbraco;User Id=umbracouser;Password=password;

・名前付きインスタンス(インスタンス名:SQLEXPRESS)でSQL Server 認証の場合

Server=.\SQLEXPRESS;Database=umbraco;User Id=umbracouser;Password=password;
(別の表記)
Data Source=locahost\SQLEXPRESS;Initial Catalog=umbraco;User Id=umbracouser;Password=password;