2011-01-11 116 views
2

現在、サーバー(2005年から2008年)を移行しており、当社のホストはSQLデータベースをバックアップし、新しいサーバーに移行しました。SQL Serverが存在しないかアクセスが拒否されている

Webサイトのファイルを転送し、接続文字列とglobal.asaファイルのIPアドレスを変更しました。

技術的には、新しいサーバーにミラーイメージがありますが、SQLに接続するページを起動しようとすると、次のエラーが表示されます。

は、任意の助けをいただければ幸いです

SQL_Server_does_not_exist_or_access_denied。

答えて

3

この場合、エラーメッセージは正しい可能性があります。まず、新しいサーバーへのネットワークパスが動作していることを確認し、指定されたuserid/pwdで接続できることを確認します。

1)Management Studioを開き、IPアドレスでSQL Serverインスタンスに接続しようとします。 (ちなみに、あなたがインターネットホスト上にいるので、Windows認証のためのADコンテキストがない可能性が高いので、SQL Serverのuserid/pwdを使用する必要があります)

2) Management Studioを使用してインスタンスとデータベースに接続できるのであれば、おそらくどこかの接続文字列を見逃している可能性があります。通常は設定ファイル内で、接続文字列の場所を1つだけ維持してください。詳細に報告されたエラーラインを調べて、使用されている接続文字列を検出し、新しいサーバーIPが反映されていることを確認します。

+0

#1は私のために働いた。 IPアドレスを使用しなければならなかった。 –

0

新しいコンピュータにインストールをセットアップするときにもこの問題が発生しました。

私が経験した接続の問題は、MSSQLをホストしているサーバーでファイアウォールが設定されたためです。この設定では、管理者がIPアドレスを「スティッキー」として記述しているため、個々のIPアドレスには「動作している」という環境にアクセスできます。ファイアウォールへのアクセスが新しいマシンのIPアドレスに与えられると、私のローカルWAMPセットアップで実行していたPHP odbc_connect(...)のステートメントがすぐに完了しました。

多くの問題と同様に、複数の問題を抱えている可能性がありますが、経験したことについてできるだけ明確にしたいと考えました。

私は自分のPCにMSSQL管理スタジオを自分でインストールしていたのですが、これはおそらくもう少し明確です。

MSSQLを収容しているサーバーの受信規則のうち、MSSQLインスタンスを参照するルールが見つかりました。「スコープ」の下にある古いマシンのIPアドレスが「リモートIPアドレス」として十分に見つかりました。ここで私は次のマシンを得るたびにこれを覚えています! (廃止されたPCのIPは削除されました)

@ダーレンあなたが受け入れた回答の下にコメントを残せば、@ Tahbazaの提案のどれがあなたの解決に導かれたのかを知ることはいいかもしれません。

0

この同じエラーは、クローンサーバーのIPがSQL Config - > TCP/IP接続で正しく構成されていない場合にも発生します。

  1. サーバ名
で1433ポート番号でTELNETを使用して接続するODBC接続
  • を使用してサーバー名を使用して、クライアント・マシンからの接続:SQL TCP/IPの設定で誤って設定IPで

    はあなたが聞かせません

    これは、プライマリサーバのSQL IP設定を残している別のSQLサーバからサーバを複製した場合に発生します。

    しかし、クライアントアプリケーションは、次のメッセージでサーバー名を使用しても、接続文字列を使用して接続に失敗:

    1. 注意のIP:

      [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied 
      

      SQL Server上で確認するために、次の操作を行いIPCONFIGを実行してサーバー自体(おそらく管理者はボックスのクローン作成後にマシンのIPを更新しました)

    2. SQL Server構成マネージャーを開きます
    3. がMSSQLSERVER
    4. のプロトコル]を選択し
    5. SQL Serverネットワークの構成を展開してダブルIPへの権利
    6. スイッチは、それがIPと同じであるかどうかを確認するためのIPv4セクションまでタブ
    7. スクロールをアドレスにTCP/IPをクリックしてくださいマシン自体のアドレス。もしそうでなければ、IPを修正してください。それが正しい場合、これは問題ではありません。
  • 0

    データベースの資格情報は、Windowsユーザーとログインの代わりにSQLユーザーとログインを使用するように構成されていますか?

    もしそうなら、データベースのSQLユーザーをサーバー上のSQLログインに再マップする必要があります。この問題があるかどうかを調べるには、EXEC sp_change_users_login 'Report'を使用してください。 'Auto_Fix'オプションは、システムが検出した問題を自動的に修正します。 ALTER USER $User WITH LOGIN $Loginを実行して、手動で各マッピングを個別に修正することもできます。

    http://technet.microsoft.com/en-us/library/ms174378.aspx

    古いサーバー上のデータベース内のSQLユーザーは、新しいデータベースのSQLログインのSIDと一致しないためにSIDが発生したので、問題が発生しています。ストアドプロシージャは、不一致を修正します。

    0

    QtからMicrosoft SQL Server 2014をコンピュータに接続しているときにこの問題が発生しました...

    私は、次のQODBC接続文字列を使用:

    db.setDatabaseName("Driver={SQL Server};Server=DESKTOP-F6T7JPD\\sql_Instance_Name;Database=master;Uid=sa;Pwd=your_pwd;"); 
    

    私は唯一の2つの問題に苦しん:

    1. は、サーバーで使用するものを特定するSQLサーバー上に構成されているように、これはサーバ名でなければなりませんインスタンスは、これは "MicrosoftSql2014管理スタジオ"を開いて見つけることができますプロパティを見て私は名前を見つけた(DESKTOP-F6T7JPD\sql_Instance_Name

    2. 2番目の問題は、実際には、私のPC名とインスタンス名の間に別のバックスラッシュ\を追加することによってこの名前を変更する必要があることです。 管理スタジオで見つけられる名前はPC_Name\Sql_Instanceです。 "\"、...これはPc_Name\\Sql_Instanceとする必要があります。
      PC名とインスタンス名の間の\\に注意してください!

    関連する問題