パソコン情報

【Sqlserver】データベースを複製してAccessで動くようにODBC設定VBAの実験準備(データベース複製実験2)

Sqlserverでの実験も2回目になります。

https://pctips.jp/server/stored-detabase-1/

今回は、

ポイント

データベースを複製してAccessで接続し直してストアドが動くのかの実験

をします。

リンクテーブルや、パススルークエリなどをVBAで一括変換可能なのかも検証してみたいと思います。

データベースの複製

対象データベースのバックアップファイルを作成

MSSMSから対象のデータベースの上で右クリックして、「タスク>>バックアップ」と進みます。

バックアップ先は、

C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backup\

っとなっていますが、サーバーのローカルフォルダーにバックアップされますので、注意してください。

複製(ファイルおよびグループの復元)にて作成

データベースの複製は、バックアップしたファイルを復元する形で作成します。

データベースの上で右クリックして、「Fileおよびファイルグループの復元」を選択します。

復元先データベースという部分に、複製した新しいデータベース名を入れます。

復元元デバイスにて、バックしたファイルを選択して、復元にチェックをいれてOKすればデータベースが複製されます。

複製されたデータベースには、テーブルからストアドなど全てが複製されています。

セキュリティ>>ユーザーを確認すると、接続ユーザーも同じ物がコピーされています。

今回は、

参考

あえて別の接続ユーザーで分けたいので新たにuser2というのを作成して、user1は、複製したDB2には接続できないようにしたいと思います。

セキュリティ>>ユーザーからuser1のユーザーマッピングにて、DB2のチェックを外して対象外にしました。






複製DB2のODBC接続設定

DB2には、user2だけ接続できるように制限したいので、MSSMSから、user2を設定します。

セキュリティ>>ログイン」の上で右クリックして、新しいログインにてuser2を追加します。

新しいログインuser2は、DB2のユーザーマッピングがされてないので、プロパティから開いてマッピングをしてください。

マッピングされると、DB2の「セキュリティ>>ログイン」の中に、user2が出てきます。
※更新しないと出てこないので注意してください。

このユーザー情報が、Accessの動くPC上でODBC接続設定をします。

自分の場合は、

  • ODBC名 ODBC2
  • ID user2
  • パスワード japan2020$$
  • サーバー名 ●●●¥SQLEXPRESS(御自分の環境に合わせる)







Accessの準備

Accessの方は、フツーにコピーして、DB2にリネームすればOKです。

 

これで前準備は完了です。

これからが、AccessのコピーDB2をSqlServerのデータベースDB2に接続してちゃんと動くのかを実験します。

ただ、沢山のテーブルやパススルークエリなどがあると全てのODBC接続情報を更新するのは本当に大変です。

その辺をVBAで簡単に一括変換できるのか!?

また、VBAコードでストアドを動かす時に設定したODBC接続情報を簡単に修正できる方法を検証してみたいと思います。

 

https://pctips.jp/server/stored-detabase-3/