ユーザーの既定データベースを開けません

ユーザーにはそれぞれ、既定のデータベースがあります。ログイン データベースを指定せずに、SQL Server
を実行しているコンピュータに接続すると、既定のデータベースが使用されます。ただし、接続時に既定のデータベースが使用可能でない場合は、接続できない
ことがあります。このとき、エラー メッセージ 4062 または 4064 が表示されます。このエラー メッセージのテキストは以下のとおりです。

接続時に、ユーザーの既定のデータベースが使用できない状態になっています。ユーザーの既定のデータベースが以下の状態である可能性があります。


問題のあるモードである。

なくなっている。

シングル ユーザー モードであり、唯一の利用可能な接続が既に使用されている。

デタッチされている。

RESTRICTED_USER 状態に設定されている。

オフラインである。

緊急モードに設定されている。

ログイン アカウントがユーザーに対応付けられていないか、そのユーザーがアクセスを拒否されている。


また、ログイン アカウントが複数のグループのメンバである場合があります。そのいずれかのグループの既定のデータベースが、接続時に使用できない状態です。

SQL Server 2005 では、sqlcmd ユーティリティを使用して既定のデータベースを変更できます。これを行うには、以下の手順を実行します。

1.
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。cmd と入力し、Enter キーを押します。
2.
SQL Server ログインで使用している認証の種類に応じて、以下のいずれかの方法を使用します。


SQL Server ログインで Microsoft Windows 認証を使用してインスタンスに接続している場合は、コマンド プロンプトで次の行を入力し、Enter キーを押します。

sqlcmd –E -S InstanceName –d master

SQL Server ログインで SQL Server 認証を使用してインスタンスに接続している場合は、コマンド プロンプトで次の行を入力し、Enter キーを押します。

sqlcmd -S InstanceName -d master -U SQLLogin -P Password

: InstanceName には、接続先の SQL Server 2005 インスタンスの名前が入ります。SQLLogin には、既定のデータベースが削除されている SQL Server ログイン名が入ります。Password には、SQL Server ログインのパスワードが入ります。

3.
sqlcmd プロンプトで次の行を入力し、Enter キーを押します。

ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName

: AvailDBName には、SQL Server ログインでアクセスできる、そのインスタンス内の既存のデータベースの名前が入ります。

4.
sqlcmd プロンプトで GO と入力し、Enter キーを押します。

Microsoftサポートオンライン:文書番号 307864

おすすめの記事