Access 2007 で作成したアプリケーションを Microsoft SQL Server 2005 Express Editon( Service Pack 3)にアップサイジングした事例を紹介します。
構成
サーバー機の Firewall 設定を変更
構成
Windows XP Professional service pack 3 (サーバー機)運用
Windows XP Pro / Vista (クライアント機)
Microsoft SQLServer 2005 Express edition with Advanced services sp3
Router (yamaha RTA-56v)
Router の外側からサーバーにアップサイジングしたデータベースに接続する事前作業
サーバー機のIPアドレスが DHCP 割り当てになっていたら、固定のプライベート IP アドレスを割り振りします。(例 192.168.0.201など)SQL Server の作り方
SQL Server 2005 Express のインストールは特に注意する部分はありません。SQL Server 2005 Expressのカスタマイズ
但し、「登録情報」入力では、「□ 詳細構成オプションを非表示にする(D)」のチェックはオフにした方がいくつかの画面が省略されないのでお勧めです。
また、「サービスアカウント」のセットアップ終了後にサービスを開始する項では、「□ SQL Browser(W)」にもチェックを入れます。
認証モードでは、「□ 混合モード(M)」を選択します
【確認】
コマンドプロンプトを起動し、次のコマンドを入力して確認しますsqlcmd -S computername@SQLEXPRESS
1>と表示されたら、動いています
ネットワークの有効化については、事例が多数ありますので詳細は割愛します。
- ネットワークの有効化
サーバー機をネットワーク接続するためには、データベース・エンジンをリモート接続が可能な設定にする必要がある。- 同、TCP/IPを有効にして、TCP/IPのポートを1433に固定し、動的ポート番号を削除する
ローカルでは運用可能となりましたので、Access 2007 で稼働中のデータベースを SQL Sever 2005 Express にアップサイジングします。(他者の事例を参照ください)
サーバー機の Firewall 設定を変更
他のPCから接続するには、サーバー機の Firewall の設定で例外の登録が必要です(XP pro sp2 以降)。
ユーザー登録
- 例外に、sqlservr.exe/sqlbrowser.exeを登録するか、
又は、TCPボート=1433/UDPポート=1434を登録する- ファイル共有も例外に登録する
インストール時に関連してインストールされた「SQL Server Management Studio Express を使用して、使用者を登録します。
ここでの注意点は、各ユーザー毎にマッピングされたデータベースに「データベース ロール メンバーシップ」を割り当てる必要があります。(ここが具体的に理解していませんでしたので作業がハングアップしていました)
ルーターの設定 (ルーターのNATとFirewall の設定)
- sa でログインします
- オブジェクト エクスプローラーの該当サーバーインスタンス項のセキュリティを展開し、ログイン項を右クリックします
- ポップアップから「新しいログイン」をクリックして、アカウントを作成します
パスワード、既定のデータベースを指定し、「□パスワードポリシィを運用する」のチェックを外します- サーバーロールは、「public」となっています
- ユーザー マッピングでは、使用するデータベースにチェックを入れます
- 同、各データベース毎に「ロールメンバーシップ」を登録します。
□ db_datareader
□ db_datawriter
□ db_owner
□ public- 各データベース毎に項目6の割付けを行います
ルータにアクセスし、WAN側の設定を行います。ルータの外側のPCから Access プロジェクトを開く
WAN側に割り当てたIPアドレスをメモに残します例 192.168.100.245
【NAT テーブル】
次を指定します
例:
TCPポート=1433 宛先アドレス=192.168.0.201
UDPポート=1434 宛先アドレス=192.168.0.201
【Firewall】
自動的に作成された Static Filter の設定を確認します。
例:
#80 ■入 プロトコル=TCP 送信元アドレス/ポート= */* 受信先アドレス/ポート=192.168.0.201/1433
#81 ■入 プロトコル=UDP 送信元アドレス/ポート= */* 受信先アドレス/ポート=192.168.0.201/1434
サーバー機にアップサイジングしたプロジェクト(*****.adp)ファイルをコピーし、PC に貼り付けます。必要に応じて
- Access を起動し、上記プロジェクトを開きます
- オフィス ボタンの「サーバー」をポイントし、「接続」をクリックします
- データリンク プロパティ ウィンドウで、下記を入力し「接続テスト」をクリックしします
サーバー名=ルータのWAN側IPアドレス(例:192.168.100.245)\SQLEXPRESS
ユーザー名=登録したログイン名
パスワード=登録したログイン名のパスワード
サーバー上のデータベースを選択する=アップサイジングしたデータベース名- 接続が成功したら、"接続のテストが成功しました"とウィンドウが表示されます
一度警告のメッセージが表示されますが、OKで継続します- 接続が完了したら、テーブルとクエリーが追加で表示されます。失敗したらフォームやレポートなどADPファイル内のもののみが表示されます。
hosts ファイルに登録します
c:\windws\system32\drivers/etc/hosts
テキストエディターで開きますが、Vista ではテキストエディターを管理者モードで開いたあとにhosts ファイルを開きます。入力例 192.168.100.245 a51
コメントする