• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL Serverへの接続について教えてください。)

SQL Serverへの接続について教えてください

このQ&Aのポイント
  • VB.NET2003+Access2000で開発していたアプリをSQL SERVER 2005に移行する作業をしています。
  • MSDE2000Aをインストールし、MDBファイルからコンバートしたMDFファイルにはアクセスできました。
  • しかし、別のマシンにSQL SERVER 2005 Expressをインストールしてデータベースファイルを移行する際に、MDFファイルにアクセスできません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

返事遅れてもうしわけありません。(チェック漏れでした) 正直な話、業務ではほとんどSQL認証で運用しているんで、 Windows認証は詳しくないんですよ。 でも、おそらく、認証の問題だと思います。 なぜドメイン参加が拒否されているかわからないのですが、 とりあえずXPHomeだったらOSの制限で参加できないですしね…。 SQL認証にするかドメインに参加させるか、 サーバーをドメインからはずすか…かなと思います。 ただ、現在クライアントでログインしているユーザー名/パスワードで、 そのサーバーの「ローカルユーザー」を登録、 SQLサーバー上で、DBにアクセスできる権限を付与する (エンタープライズマネージャーで設定可能) と、うまくいくかも… (明示的に「ローカルユーザー」として認識させる)

danchor
質問者

お礼

おはようございます。 なぜドメインに参加できないかは不明のままなのですが、先週打合せがあって、もうすぐ本チャンのサーバーが入るのですが、アクティブディレクトリは使用しない構成で行くようなので、テストの方もサーバーをドメインからはずしてやってみます。 そしてローカルユーザーを登録するところからやり直して見ます。 いろいろとご教示いただき、ありがとうございました。

その他の回答 (3)

回答No.3

*(一時的にでも)混合認証に変更してSQL認証(saなど)で接続できるか。  →これで通るなら認証の問題(1)だし、そうじゃなかったらSQLサーバーのパケットがとめられているかも(2)。 (1)の場合、 *そのクライアントはドメインに参加しているのか。 *そのクライアントのサーバー上での権限(Windowsの権限/Administratorsを持っていないならSQLサーバー上で権限を付与しているか) (2)の場合 *パーソナルファイヤーウォールのせっていは? *サーバー上でOSQL -S(サーバーのIPアドレス)  でつながるか? *TCP/IP以外のプロトコルが有効になっていないか。

danchor
質問者

補足

khazad-leftyさん ありがとうございます。 *そのクライアントはドメインに参加しているのか。 もっと早くに申し上げれば良かったのかも知れませんが、サーバーはドメイン設定していますが、問題のクライアントはそのドメインに参加しようとしてもサーバーから拒否されています。 このが問題の根本かもしれないと思っています。 サーバー上でsqlcmd -Sでたたいてみると  TCP/IPであるはずなのに名前つきパイプが・・・・  サーバーがリモート接続を許可していない・・・・ という二つのエラーが出てきます。 ちゃんと設定されているはずなのですが・・・。

回答No.2

根本的な話なのですが、データベースにアクセスするというのは、 MDFにアクセスするということではありません。 MDFにアクセスしているのは、あくまでもSQLサーバーの「サービス」で、 クライアントはサーバー上で動いているデータベースサービスにアクセスしています(という言い方も厳密に言うと違う気がしますが…。)。 なので、Windows上でMDFが見えている、見えていないは関係ないです。 勘違いしてないにしても、この言い方は誤解を招きやすいと思うので「データベースにアクセスできない」のほうがいいかと思います。 とりあえず、 *認証方法は?混合認証?それとも? *クライアントからosqlで接続できるか。 *逆にサーバー上でosqlを使ってクライアントに接続できるか *サーバーで使われているプロトコルは?(参考リンク参照)

参考URL:
http://blogs.sqlpassj.org/yoshihirokawabata/articles/8680.aspx
danchor
質問者

補足

重ねての回答ありがとうございます。 認証方法はWINDOWS認証です。 クライアントにも開発テスト用の同じDBがあり、osql-E でつなぎに行くとクライアントにあるサーバーしかつながりません。 サーバーを指定しても データベースのsysdatabasesのエントリに位置づけられていません と返ってきます。 サーバー上からも同じです。 プロトコルはTCP/IPです。 引き続きよろしくお願いします。

回答No.1

*アタッチはうまくいったのか。 *うまくいってないとしたら、どのコンピュータからアタッチをかけようとしているのか。 読んでいると、クライアントにあるSQLサーバーにサーバーのMDFファイルをアタッチしているように見えます。 そうであれば、作業をサーバー上で行ってください。 クライアントからでもエンタープライズマネージャーでそのサーバーを登録すればまったく同様に作業はできるのですが多分混乱すると思うんで。

danchor
質問者

補足

khazad-lefty様 おはようございます。 なかなかRESがつかなかったのでほぼ諦め・手詰まり状態だったので助かります。 >どのコンピュータからアタッチをかけようとしているのか。 もちろんサーバーからそのサーバーにコピーしたファイルをアタッチしています。 クライアントにもSQLサーバーをおいていますが、それは使わずに.NETからサーバーにおいてあるファイルを接続しに行っています。 でも・・・・・。 引き続きよろしくお願いいたします。

関連するQ&A