- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL Server 2005(2008)とVB.netでのデータベース共有)
SQL Server 2005(2008)とVB.netでのデータベース共有
このQ&Aのポイント
- SQL Server 2005(2008)とVB.netを使用してデータベース共有を行う方法について解説します
- vb.net 2008とSQL Server 2005を使用してデータベースを管理しているが、テーブル名の変更などができず不便を感じている。どのようにしてSQL Serverでデータベースを管理するかについて考えている。
- SQL Server Express 2005とVisual Basic 2008 Professionalを使用してデータベースの共有を行っているが、アクセスの制限が生じる問題が発生している。両者からのアクセスを可能にする方法について解説します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
現在VB側のアクセスがユーザインスタンス(AttachDbFilename=C:\..\xxx.mdf;User Instance=True)になっているとすれば、そのままでは目的の形にするのは無理だと思います。 もともとユーザインスタンスは、そのPCにインストールされているSQL Serverにそのユーザだけがアクセス可能になるように利用時のみアタッチ/デタッチする仕組みですが、SQL Serverにアタッチしてしまうとそのファイルをユーザインスタンスで使うことはできなくなります。 >今度はSQL Server側にパーミッションが変更されるようで、vbからアクセスできないようになってしまいました。 とありますが、パーミッションというよりも、SQL Server自体が排他的にMDFファイルを抱えてしまう(=ずっと使用中)ことによりアクセスができなくなるということです。 したがって、VB側の接続方式を変更するしかないでしょう。 データソースを「SQL Serverデータベースファイル」ではなく「SQL Server」にして、SQL Serverにアタッチ済のデータベースに対して接続を行うように変更してみてください。 (Data Source=.\SQLEXPRESS;Integrated Security=True;Initial Catalog=データベース名というような接続文字列になるはずです)
お礼
大変わかりやすい説明ありがとうございました。 確かに上記の通りやってみたところ、双方から無事接続できました。 この辺の仕組みについて解説している本もサイトも見つけることができず、最終的にここで質問いたしましたが、jamshid6様には大変感謝しています。 ありがとうございました。