web-dev-qa-db-ja.com

シングルユーザーモードを実行しているときにSQL Server 2008にログインできない

MSのドキュメント here に従って、説明されているプロセスの一部として、SQL Serverの1つのインスタンスから別のインスタンスにログインを移行します here 。これには、サーバーをシングルユーザーモード(これは私が行った)にして、スクリプトを実行するなどが含まれます。

ただし、シングルユーザーモードで再起動した後(SqlServerサービスのみが実行されている場合)、Windowsアカウントまたはsa資格情報を使用してログインできません。エラーが発生します:

Failed to connect to <servername>

Login failed for user 'sa'. Reason: Server is in single user mode. 
Only one administrator can connect at this time. (Microsoft SSQL Server, Error: 18461)

サーバーを通常どおり再起動した後(つまり、マルチユーザーモード)、すべてのログインが正常に機能します。

誰かが何が起こっているのか、および/またはこれを修正する方法を説明できますか?

6
5arx

これは、SSMSを使用して接続しようとしているためと考えられます。 SSMS内では、オブジェクトエクスプローラーはデータベースへの1つの接続を開きますが、後続の各クエリウィンドウはデータベースへの別の接続を開きます。

私が過去に行ったことは、SSMSを開いて、オブジェクトエクスプローラー経由でデータベースに接続せず、次の手順で専用管理者接続(DAC)クエリウィンドウを開きます。

  1. [新しいクエリ]をクリックします
  2. [サーバー名]ダイアログボックスに次のように入力します。ADMIN:ServerName\InstanceName
  3. ここから、データベースに対して必要なスクリプトをシングルユーザーモードで実行できます。

これには、SQL Server Browserサービスが実行されている必要があります。

これらすべての本当の問題は、オブジェクトエクスプローラーがその「シングルユーザー」を使い果たすことです。

お役に立てれば、

マット

10
Matt M

Sp_help_revloginを使用してログインを転送するために、サーバーをシングルユーザーモードで起動する必要はありません。

5
mrdenny

SQL Serverに正常に接続できない状況では、 [〜#〜] dac [〜#〜] を使用してみてください。

4
Gaius

シングルユーザーモードでも同様の経験があります。 「シングルユーザーモードを開始しました-私はシングルユーザーである必要があります」と考えるのは簡単です。しかし、アプリケーションはそれを知りません。最初に確認することは、シングルユーザーモードを開始する前にアプリケーションサービスを停止することです。シングルユーザーモードで他の接続を停止する別の方法は、あなたの前に接続しているログインへの接続を拒否することです。ログインしたユーザーを見つけるには?インスタンスのセキュリティプロパティで[ログイン監査-ログインの失敗と成功の両方の監査]をオンにします。シングルユーザーモードでSQLを起動し、少し待ってから停止します。次に、ログファイルの場所からメモ帳でSQLエラーログを確認します。接続中または接続試行中のログインは、SQLエラーログに表示されます。これらのログインが拒否された場合-あなたの前に接続することはできません。シングルユーザーモードを終了したら、ログインを再度有効にしてください。

3
dcthedba

ログインを問題なく移行するには、次のようにします。

  • ビジネスインテリジェンス開発スタジオを開始する
  • 新しいプロジェクトを選択
  • sSISプロジェクトを選択
  • 「ログインをサーバーからサーバーにコピーする」というタスクをドラッグアンドドロップする
  • ソースと宛先を指定する
  • execute

...そして完了。

2
M Mamdouh

SQL ServerのSysAdminを使用している場合は、データベース(制限があるため、かなりの数になる可能性があります)をrestricted_userモードにすることを考えましたか?ただし、アプリや他のユーザーには昇格されたアクセス許可はありません。

2
Peter Schofield

コマンドラインからSQLサービスを開始し、SQLCMDを使用してスクリプトに接続して実行することをお勧めします。

1
SQLRockstar