現在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で質問しましょう!
似たような質問が見つかりました
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- SQL Server SQL ServerでDBを構築。これは開発? 4 2022/05/28 14:10
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- その他(ブラウザ) python から COBOL を呼び出すことは可能でしょうか。 1 2023/04/21 21:03
- その他(プログラミング・Web制作) Rでのスクリプトのご相談 3 2022/12/08 16:22
- SQL Server PCが悪くなって新しいPCにSSMSのデータを移すよう頼まれたけど移し方が分からない 1 2023/05/18 16:54
- その他(OS) Windows Server評価版がダウンロードできない 1 2022/05/06 13:32
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- その他(開発・運用・管理) Windows serverでマルチキャスト通信の確認をしたいです。MicrosoftよりMPING 1 2023/03/31 01:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AWS初学者です。 AWSの学習を終...
-
DB2で SQL1032N start databas...
-
SQL Server 2005 の インスタ...
-
oracleのメモリ使用量が97%ほど...
-
OracleDBConsoleorclのサービス...
-
SIDとSERVICE_NAMEの違いとは?
-
東方紅魔郷
-
倒産した18禁ゲーム会社のパ...
-
住所コード11桁の住所データ...
-
Windows Storeを使わずに付箋を...
-
「ORA-6413 接続がオープンして...
-
LaTeXマクロのemathを使っても...
-
Oracleへのリンクサーバー設定...
-
突然オラクルへ接続できなくな...
-
iniファイル読み込み失敗という...
-
SYSユーザーでログインしたい
-
.NET Frameworkがコントロール...
-
Oracle11g SQLPlusログインにつ...
-
ObjectBrowserでエクスポート
-
どのセッションが重いのかを知...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB2で SQL1032N start databas...
-
oracleのメモリ使用量が97%ほど...
-
AWS初学者です。 AWSの学習を終...
-
SQLServer2005上の別DBからテ...
-
クラスタリングとレプリケーシ...
-
SQLServer 2008のインスタンス...
-
インスタンス、ノード、ターゲ...
-
OracleDBConsoleorclのサービス...
-
SQL Server 2005 の インスタ...
-
Windows2000でのOSシャットダウ...
-
SQLSERVER データインポート
-
インスタンスの再作成について
-
SQLサーバーへの接続について
-
SQLサーバーの停止。
-
SQL Server 2005(2008)とVB.net...
-
SQLServer2005 リンクサーバー...
-
SQLserver2005のデータベースミ...
-
Oracleのセッションの強制タイ...
-
データベースをオープンできない
-
SIDとSERVICE_NAMEの違いとは?
おすすめ情報