こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

いつも初歩的な質問ばかりで済みません。
VB.NET2003+Access2000で開発していたアプリをSQL SERVER 2005 に移そうと作業しています。

まずMSDE2000Aをインストールし、同じマシンにあるMDBからコンバートしたMDFファイルにはアクセス
出来ました。
SQL server 2005 Express に変更しましたが、これもうまく接続・更新が出来ていました。

そして今度は別のマシンにWindows SERVER 2003 R2評価版をインストール、次いで SQL SERVER 2005 Express
をインストールしてそのサーバーへデータベースファイルをデタッチして移しました。
クライアントからマイネットワークをたどっていくと共通ディレクトリはちゃんと見え、
MDF以外のファイル(XLSやMDB等)はちゃんと読み書きが出来ます。
ただ肝心のMDFファイルにアクセス出来ません。

接続しにいくと「サーバーが見つからない」とか「接続が拒否されました」等々無情なメッセージばかり返ってきます。

どこをチェックしたらいいのか、ご教示に従って補足していきますのでどうぞよろしくお願いいたします。

投稿日時 - 2007-02-13 13:29:04

QNo.2748656

すぐに回答ほしいです

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

返事遅れてもうしわけありません。(チェック漏れでした)

正直な話、業務ではほとんどSQL認証で運用しているんで、
Windows認証は詳しくないんですよ。
でも、おそらく、認証の問題だと思います。
なぜドメイン参加が拒否されているかわからないのですが、
とりあえずXPHomeだったらOSの制限で参加できないですしね…。

SQL認証にするかドメインに参加させるか、
サーバーをドメインからはずすか…かなと思います。

ただ、現在クライアントでログインしているユーザー名/パスワードで、
そのサーバーの「ローカルユーザー」を登録、
SQLサーバー上で、DBにアクセスできる権限を付与する
(エンタープライズマネージャーで設定可能)
と、うまくいくかも…
(明示的に「ローカルユーザー」として認識させる)

投稿日時 - 2007-02-25 21:31:42

お礼

おはようございます。

なぜドメインに参加できないかは不明のままなのですが、先週打合せがあって、もうすぐ本チャンのサーバーが入るのですが、アクティブディレクトリは使用しない構成で行くようなので、テストの方もサーバーをドメインからはずしてやってみます。

そしてローカルユーザーを登録するところからやり直して見ます。
いろいろとご教示いただき、ありがとうございました。

投稿日時 - 2007-02-26 08:42:48

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

*(一時的にでも)混合認証に変更してSQL認証(saなど)で接続できるか。
 →これで通るなら認証の問題(1)だし、そうじゃなかったらSQLサーバーのパケットがとめられているかも(2)。
(1)の場合、
*そのクライアントはドメインに参加しているのか。
*そのクライアントのサーバー上での権限(Windowsの権限/Administratorsを持っていないならSQLサーバー上で権限を付与しているか)

(2)の場合
*パーソナルファイヤーウォールのせっていは?
*サーバー上でOSQL -S(サーバーのIPアドレス)
 でつながるか?
*TCP/IP以外のプロトコルが有効になっていないか。

投稿日時 - 2007-02-17 09:47:28

補足

khazad-leftyさん ありがとうございます。

*そのクライアントはドメインに参加しているのか。

もっと早くに申し上げれば良かったのかも知れませんが、サーバーはドメイン設定していますが、問題のクライアントはそのドメインに参加しようとしてもサーバーから拒否されています。
このが問題の根本かもしれないと思っています。

サーバー上でsqlcmd -Sでたたいてみると
 TCP/IPであるはずなのに名前つきパイプが・・・・
 サーバーがリモート接続を許可していない・・・・
という二つのエラーが出てきます。
ちゃんと設定されているはずなのですが・・・。

投稿日時 - 2007-02-20 11:12:16

ANo.2

根本的な話なのですが、データベースにアクセスするというのは、
MDFにアクセスするということではありません。
MDFにアクセスしているのは、あくまでもSQLサーバーの「サービス」で、
クライアントはサーバー上で動いているデータベースサービスにアクセスしています(という言い方も厳密に言うと違う気がしますが…。)。
なので、Windows上でMDFが見えている、見えていないは関係ないです。
勘違いしてないにしても、この言い方は誤解を招きやすいと思うので「データベースにアクセスできない」のほうがいいかと思います。

とりあえず、
*認証方法は?混合認証?それとも?
*クライアントからosqlで接続できるか。
*逆にサーバー上でosqlを使ってクライアントに接続できるか
*サーバーで使われているプロトコルは?(参考リンク参照)

参考URL:http://blogs.sqlpassj.org/yoshihirokawabata/articles/8680.aspx

投稿日時 - 2007-02-16 01:19:05

補足

重ねての回答ありがとうございます。

認証方法はWINDOWS認証です。

クライアントにも開発テスト用の同じDBがあり、osql-E でつなぎに行くとクライアントにあるサーバーしかつながりません。
サーバーを指定しても データベースのsysdatabasesのエントリに位置づけられていません
と返ってきます。

サーバー上からも同じです。
プロトコルはTCP/IPです。

引き続きよろしくお願いします。

投稿日時 - 2007-02-16 14:05:52

ANo.1

*アタッチはうまくいったのか。
*うまくいってないとしたら、どのコンピュータからアタッチをかけようとしているのか。

読んでいると、クライアントにあるSQLサーバーにサーバーのMDFファイルをアタッチしているように見えます。
そうであれば、作業をサーバー上で行ってください。

クライアントからでもエンタープライズマネージャーでそのサーバーを登録すればまったく同様に作業はできるのですが多分混乱すると思うんで。

投稿日時 - 2007-02-15 08:23:14

補足

khazad-lefty様 おはようございます。

なかなかRESがつかなかったのでほぼ諦め・手詰まり状態だったので助かります。

>どのコンピュータからアタッチをかけようとしているのか。
もちろんサーバーからそのサーバーにコピーしたファイルをアタッチしています。
クライアントにもSQLサーバーをおいていますが、それは使わずに.NETからサーバーにおいてあるファイルを接続しに行っています。
でも・・・・・。

引き続きよろしくお願いいたします。

投稿日時 - 2007-02-15 08:40:29