• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL Server 2005 でのSSMSで4064エラー)

SQL Server 2005でのSSMSで4064エラー

このQ&Aのポイント
  • SQL Server 2005のSSMSで4064エラーが発生し、ログインができない現象が発生しています。
  • SQL Serverの障害検証のため、サービス停止後にユーザーデータファイルが消されたことが原因です。
  • SSMSは起動できるものの、物理データファイルの消去により、ログインができなくなっています。

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

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

#1です。 各ログインに「既定のデータベース」が指定できることはご存じなんですよね? 通常何も変更しないでログインを作成すれば、既定のデータベースはmasterになります。 しかし、アプリケーションの都合でいきなりユーザデータベースを参照させたいときに 既定のデータベースを変更することがあります。 ユーザデータベースを削除してログインできなくなるのは、そういうユーザだけであって それ以外のユーザは問題なくログインできます。 この点についてSQL Server 2005/2008で何ら違いはありません。

kisobu
質問者

お礼

ありがとうございます。今解決したのでメッセージをいれようと思っていたところでした。 >各ログインに「既定のデータベース」が指定できることはご存じなんですよね? >通常何も変更しないでログインを作成すれば、既定のデータベースはmasterになります。 お恥ずかしい話ですが知りませんでした。でも原因はそこにありました。 実はSQL Serverを直接使用しているというよりSAP社のERPツールのDBエンジンとして使用しています。なので詳しいことがわかっていませんでした。 結論からいうとadministratorでOSにログオンして作業するとデフォルトでmasterデータベースにログオンしてくれるのでdetachなどの操作ができるようになりました。 SAPのデータベースファイルであったので、sidadmというOSユーザでログオンしてSSMSを起動するとデフォルトでSAPのDBに接続しに行きエラーとなっていたようです。2008でログオンできたというのは、SAPは関係ないSQL Serverでの操作でしたのでadministratorで作業しておりました。 これからもっと勉強します。ありがとうございました。

その他の回答 (1)

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

メッセージの通りです。 それぞれのログインには「既定のデータベース(ログインしたときに最初に接続するデータベース)」が指定されており、その既定のデータベースがなければログインも失敗します(代わりのデータベースを自動的に探したりはしません)。

kisobu
質問者

補足

ご回答ありがとうございます。 長い間SQL Serverの作業をしていなかたので自信がないのですが6年ほど前に触っていた頃(Ver不明)はdetachを忘れてデータファイルをOS的に削除してしまってもSSMSのようなツールを起動するとdetach操作ができたと記憶しています。今回は2005にて検証しましたが、さらに新しい2008の場合では、データファイルを削除した場合、SSMSはLOGINは出来ます。ただ、データファイルは削除されているのでおかしい状態ではありますがそこから復旧作業ができるようでした。これなら理解できるのです。 質問がややこしくてすみません。 2005だけがこうなるのか?それとも思い違いなのでしょうか? LOGINができないとそのあとのSSMSからのdetach&attachなどの操作ができないと思うのですが何か間違っているのでしょうか? よろしくお願いします。

関連するQ&A