プロが教えるわが家の防犯対策術!

いつも初歩的な質問ばかりで済みません。
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ファイルにアクセス出来ません。

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

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

A 回答 (4件)

返事遅れてもうしわけありません。

(チェック漏れでした)

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

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

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

おはようございます。

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

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

お礼日時:2007/02/26 08:42

*(一時的にでも)混合認証に変更してSQL認証(saなど)で接続できるか。


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

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

この回答への補足

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

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

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

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

補足日時:2007/02/20 11:12
    • good
    • 0

根本的な話なのですが、データベースにアクセスするというのは、


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

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

参考URL:http://blogs.sqlpassj.org/yoshihirokawabata/arti …

この回答への補足

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

認証方法はWINDOWS認証です。

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

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

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

補足日時:2007/02/16 14:05
    • good
    • 0

*アタッチはうまくいったのか。


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

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

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

この回答への補足

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

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

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

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

補足日時:2007/02/15 08:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!