SQL Serverからデータベースを削除しましたが、my loginが削除されたデータベースをデフォルトとして使用するように設定されていました。接続ダイアログの「オプション」ボタンを使用し、接続するデータベースとして「マスター」を選択することにより、SQL Server Management Studioに接続できます。ただし、オブジェクトエクスプローラーで何かを行おうとすると、デフォルトデータベースを使用して接続しようとして失敗します。
誰も私のデフォルトのデータベースを設定する方法を知っていますかオブジェクトエクスプローラを使用せずに?
Sp_defaultdbの代替(これは Microsoft SQL Serverの将来のバージョンで削除される )は ALTER LOGIN
になります。
ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]
注:sp_defaultdb
ソリューションとは異なり、ユーザー名とデータベース名は引用符なしで提供されます。名前に特殊な文字が含まれる場合は角かっこが必要です(最も一般的な例は、domain\usernameであり角かっこなしでは機能しないドメインユーザーです)。
できることは、sp_defaultdbシステムストアドプロシージャを使用してデフォルトデータベースを設定することです。完了したらログインし、[新しいクエリ]ボタンをクリックします。その後、次のようにsp_defaultdbコマンドを実行します。
Exec sp_defaultdb @loginame='login', @defdb='master'
GUIの方法で行うには、ログインを編集する必要があります。そのプロパティの1つは、そのログインに使用されるデフォルトのデータベースです。 [セキュリティ]ノードの下の[ログイン]ノードの下に、ログインのリストがあります。次に、ログインを選択し、右クリックして[プロパティ]を選択します。デフォルトのデータベースを変更すると、あなたの人生は良くなります!
Sysadmin privsを持っている人は、これを行うため、または前の投稿からクエリを実行するためにログインできる必要があることに注意してください。
この投稿 のおかげで、簡単な答えが見つかりました:
SQL Server Management Studioを開きます
オブジェクトエクスプローラー->セキュリティ->ログインに移動します
ログインを右クリックして、プロパティを選択します
そして、プロパティウィンドウでデフォルトデータベースを変更し、[OK]をクリックします。
デフォルトDBを変更する権限がない場合は、クエリの上部で別のDBを手動で選択できます...
USE [SomeOtherDb]
SELECT 'I am now using a different DB'
other DBに対する許可がある限り機能します
SQL Serverにログインできない場合:
sqlcmd –E -S InstanceName –d master
また、受け入れられた回答のようにALTER LOGIN
コマンドを選択し、説明します here
しかし、GUI愛好家のために
読書にうんざり!!!次を見てください
これは質問に正確に答えるかどうかはわかりませんが、「デフォルトデータベース」として作成した新しいデータベースを使用するようにアカウントを変更したときに、この問題(および質問)に遭遇しました。次に、そのデータベースを削除し、作成スクリプトを最初からテストしたいと考えました。私はSSMSからログオフし、再びアクセスしようとしていましたが、拒否されました-エラーはデフォルトのデータベースにログインできませんでした。ど!
私がやったことは、SSMSのログインダイアログで、[オプション]、[接続プロパティ]に移動し、[データベースに接続]コンボボックスでmaster
と入力することでした。接続をクリックします。私を入れました。そこからコマンドを実行して次のことができます。
ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master]
GO