
現在vb.net 2008 と SQL Server 2005を使ってアプリケーションを作成しています。
vbの方のソリューションエクスプローラーでデータベースを作成し、現在まで稼働させてきましたが、テーブル名の変更などができないなど不便な点が気になり、そろそろSQL Serverで管理したいと考えています。
そこでいろいろ試行錯誤してやってみたのですが、SQL Server側でアタッチしようとすると、ファイル(xxxxx.mdf)のパーミッションの関係で「アクセスが拒否されました」と出てしまいます。
そこでファイルのパーミッションをSQL Serverでもアクセスできるように変更したところ、その状態でアタッチもテーブル名の変更もできるのですが、今度はSQL Server側にパーミッションが変更されるようで、vbからアクセスできないようになってしまいました。
両者からアクセスできるようにするのはどうすればいいのでしょうか。
セキュリティの面もしっかりした状態で実現させたいと思っています。
現在の環境は以下の通りです。
SQL Server Express 2005
Visual Basic 2008 Professional (SQL Server 2005 Developmentも使えます)
Windows Vista Ultimate (64bit)
SQL Serverはwindows認証で使っていますが、不都合があればSQL Server認証に変更も可能です。
No.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様には大変感謝しています。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DB2で SQL1032N start databas...
-
クラスタリングとレプリケーシ...
-
oracleのメモリ使用量が97%ほど...
-
SQL Server 2005 の インスタ...
-
ORA-12170のエラーについて
-
SIDとSERVICE_NAMEの違いとは?
-
データーベースはないがいいで...
-
突然オラクルへ接続できなくな...
-
Windows Storeを使わずに付箋を...
-
OraOps10.dllのエラーについて
-
WiFi環境があればTikTokLiteは...
-
データソース名および指定され...
-
CloverをインストールしたUSBメ...
-
倒産した18禁ゲーム会社のパ...
-
SQL*PLUSにてデータベース名表示
-
ORACLE_SIDについて
-
SQL Plus での処理が重い
-
グランドセフトオートサンアン...
-
16進数の指定の仕方
-
ACCESSからODBC接続でORA-12504
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB2で SQL1032N start databas...
-
oracleのメモリ使用量が97%ほど...
-
クラスタリングとレプリケーシ...
-
SQLServer2005 リンクサーバー...
-
OracleDBConsoleorclのサービス...
-
SQLServer2005上の別DBからテ...
-
初期化パラメータの変更について
-
SQL Server のシャットダウンの...
-
SQL Server 2005 の インスタ...
-
インスタンス、ノード、ターゲ...
-
db2_installコマンドについて
-
Oracleのアクセス権制御につい...
-
SQLserver2005のデータベースミ...
-
SIDってなんですか?
-
SQLserverExpressへの接続文字列
-
SQLサーバーへの接続について
-
SIDとSERVICE_NAMEの違いとは?
-
データーベースはないがいいで...
-
突然オラクルへ接続できなくな...
-
データソース名および指定され...
おすすめ情報