none
VB上でSQLサーバーへのアクセスについて RRS feed

  • 質問

  • VB:2010express  SQL:SQLServer2008express

    OS:XP pro SP3

     

    VBでSQLServerに接続するコードを記入して、接続できたのですが、

    将来的にLAN内の別のPCからもSQLサーバーへ接続させたいと思い、

    Data Source= .\インスタンス名 → \\PC名\インスタンス名

    AttachDbFilename= c:\program files\ ~~ → \\PC名\C$\program files\~~

    と書きかえると、接続できなくなります。何が原因でしょうか?

    TCP/IP:有効

    SQLServer リモート接続有効

    ファイアーウォール ポート解放(現在無効中)

     

    データソースだけ とか アタッチDBファイルネームだけ変更すると

    それぞれ別のエラーメッセージがでるので、それぞれがエラー出してるようです。

    2011年1月13日 22:47

回答

  • 将来的にLAN内の別のPCからもSQLサーバーへ接続させたいと思い、

    Data Source= .\インスタンス名 → \\PC名\インスタンス名

    AttachDbFilename= c:\program files\ ~~ → \\PC名\C$\program files\~~

    と書きかえると、接続できなくなります。何が原因でしょうか?


     

    LAN内の別のPCから接続する場合、SQL Server 2008 expressのユーザーインスタンスを利用する必要はなく、したがってAttachDbFilenameは必要ありません。LAN上での運用を想定した場合、例えば以下のような接続文字列になります。

    Data Source=PC名\SQLEXPRESS;Initial Catalog=<データベース名>;Integrated Security=True

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年2月1日 7:58
    2011年1月14日 0:19
  • saってどのデータベースでも接続できるんですよね?

    SQL Server認証が許可されていて、かつ、saのログインも許可されていなければなりません。以下が参考になると思います。

    サーバーの認証モードを変更する方法
    http://msdn.microsoft.com/ja-jp/library/ms188670.aspx

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年2月1日 7:58
    2011年1月16日 15:28

すべての返信

  • サーバーはパスとは別に指定しないといけないんじゃないでしょうか。

    SQL Server 2008 Connection String Samples - ConnectionStrings.com 


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/
    2011年1月13日 23:38
  • 将来的にLAN内の別のPCからもSQLサーバーへ接続させたいと思い、

    Data Source= .\インスタンス名 → \\PC名\インスタンス名

    AttachDbFilename= c:\program files\ ~~ → \\PC名\C$\program files\~~

    と書きかえると、接続できなくなります。何が原因でしょうか?


     

    LAN内の別のPCから接続する場合、SQL Server 2008 expressのユーザーインスタンスを利用する必要はなく、したがってAttachDbFilenameは必要ありません。LAN上での運用を想定した場合、例えば以下のような接続文字列になります。

    Data Source=PC名\SQLEXPRESS;Initial Catalog=<データベース名>;Integrated Security=True

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年2月1日 7:58
    2011年1月14日 0:19
  • 私の先の発言は誤っているのでスルーしてください。失礼しました。

    管理者以外のユーザーのためのユーザー インスタンス より引用

    ユーザー インスタンスは、管理者以外のユーザーが各自のアカウントで SQL Server のローカル バージョンを実行できるようにする機能です。


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/
    2011年1月16日 3:03
  • 返信ありがとうございます。

    全部 管理者権限のあるユーザーアカウントで行うので、ユーザーインスタンスは必要なさそうですね。

    ユーザーインスタンスよくわからず trueにしてたので false でやってみます。

     

    あいかわらず繋げてません;

    2011年1月16日 4:52
  • 返信ありがとうございます。

     

    データソースの書き方が間違っていたのですね。

    そちらの問題は解決しました。

     

    しかし、Initial Catalog=<データベース名> について、うまく接続できません。

    Integrated Security を true false SSPI にしても無理でした

     

    saってどのデータベースでも接続できるんですよね?

    PC名¥ユーザー名 も試してますが、どちらも繋げてません;

     

    2011年1月16日 4:54
  • saってどのデータベースでも接続できるんですよね?

    SQL Server認証が許可されていて、かつ、saのログインも許可されていなければなりません。以下が参考になると思います。

    サーバーの認証モードを変更する方法
    http://msdn.microsoft.com/ja-jp/library/ms188670.aspx

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク 山本春海 2011年2月1日 7:58
    2011年1月16日 15:28