質問: 別ドメインのaccessテーブルへの接続 部内で使用しているaccessで構築したシステムを全社展開することになりましたが、 ドメイン(信頼関係なし)をまたいだ場合のテーブル接続で戸惑っています。 dbの知識が乏しいため、何卒ご教授下さい。 <全社展開対象accessの概要> フロントエンド:mdbファイル。バックエンド(サーバ上)のファイルに「テーブルのリンク」で接続 バックエンド :mdbファイル。フロントエンドが接続するテーブルを保持 フロントエイドのmdbファイルを他ドメインのユーザに配布し、 当部サーバの更新を行いたいと思いますが、現構成のままではテーブルの接続が出来ませんでした。 このため、接続の構成を再構築したいと思いますが 【質問1】 どのような方法があるのでしょうか? sql serverやmsdeでバックエンドを再構築することは 要件上出来ません。。。 【質問2】 テーブルの接続にado(provider:jet.oledb)を利用すれば ドメイン間の信頼関係がなく、且つユーザに共有アクセス権限がなくても接続出来るのでしょうか? また、odbcの設定必要だとしても各ユーザが行うことは出来ないため、 (対象人数が多くpcスキルが皆無なため)odbcで接続するのであれば フロントエンドのソースに記述したいと思いますが、 【質問3】 odbcの接続方法をソースに記述することは可能でしょうか? db知識が乏しいため、トンチンカンな質問かもしれませんが 知恵をお貸し下さい。
回答: >フロントエンド:mdbファイル。バックエンド(サーバ上)のファイルに「テーブルのリンク」で接続 >バックエンド :mdbファイル。フロントエンドが接続するテーブルを保持 同じような環境で接続しています。 【質問2】 ドメイン間の信頼関係がなくとも、バックエンドのmdbがおかれているサーバーの共有フォルダに アクセス可能でかつ読み書き可能であれば問題ありません。 よってサーバー側設定は、ユーザに共有アクセス権限は必要です。 サーバー所定のフォルダにはすべてのユーザーの権限登録もしくは everyone フルアクセスとする必要があります。 リンクテーブルの接続文字列が接続したいmdbのフルパスである必要があります。 例 \\サーバー名\共有フォルダ名\バックエンド.mdb もしくは \\サーバーipアドレス\共有フォルダ名\バックエンド.mdb サーバー名とする場合は違うipセグメント間では名前解決が出来ないことが多いです。 クライアントのhosts ファイルを編集し追加してください。 これが出来ないなら、サーバーipアドレスを使われることを推奨します。 【質問3】 odbcの接続方法をソースに記述することは可能でしょうか? 上記の接続をしますので、odbcは使用しません。 使用するクライアントのセキュリティ制御の問題があります。 ログインしていないサーバーですからクライアントのセキュリティにより サーバーmdbのオープンが拒否されます。 この回避が必要です。 インターネットオプションのセキュリティタブ イントラネットを選択し サイト(s)ボタンをクリック イントラネット 詳細設定(a)をクリック 次のwebサイトをゾーンに追加するに file://サーバーipアドレス を入力し 追加ボタン 下段のwebサイトに追加されたら okボタンで各画面を閉じる。 有効にするため、クライアントを再起動してください。 クライアントから見て該当サーバーが信頼するサーバーとなったので オープン可能となります。 ここで設定するポイント整理します。 1.まずサーバー側はmdbをおいているフォルダはどのクライアントからでも読み書き可能であること 2.フロントエンドのmdbのリンクテーブルの接続名称は、サーバーファイルの絶対パスであること 3.ipセグメントがことなる場合はサーバーipで接続(サーバーの名前解決できればサーバー名でもok) 4.クライアントのセキュリティ制御に信頼許可の設定をする。 ほとんどがwindowsのファイル共有に関連することになりますので共有関連のサイトを参考にされることですね。