0

やや自由回答の質問なので、私の知識のギャップを埋める情報をいただければ幸いです。

2000 から 2008 への SQL Server のアップグレードを実行すると、アップグレード アドバイザは次の警告を表示する場合があります。固定サーバー ロール名は SQL Server 2008 で予約されています。SQL Server 2008 にアップグレードする前に、ログインの名前を変更してください。

これは、たとえば、SQL Server 2000 データベースでの「sysadmin」のログインが、2008 年の「sysadmin」の固定サーバー ロールと競合するためだと思います。

これらのログインを安全に削除して再作成する方法はありますか? または、「sa」のログインを削除すると、意図しない結果が生じる可能性がありますか?

4

1 に答える 1

0

問題の再現:

1) Builtin/administrator アカウントを削除します。2) sqlcmd または Management studio を使用して SQL Server に接続しようとします。エラー 18456 Level 14 State 1 が表示されます。 3) SA パスワードも忘れたとします。

解決策: 1) 管理者アカウントを使用してサーバーにログインします。

2) SQL Server サービスを停止し、 -m switch(single user mode) で開始します。

2) sqlcmd -E と入力して Enter キーを押します。名前付きインスタンスの場合は、sqlcmd -S -E と入力して Enter キーを押します。

4) > 記号が表示されます

5) 使用するコマンド

 CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE=  [master], DEFAULT_LANGUAGE=[us_english]

go

6) 作成したばかりのログインに sysadmin ロールを付与します

EXEC master..sp_addsrvrolemember @loginame = N'BUILTIN\Administrators', @rolename = N'sysadmin'


GO

7) 完了です。終了します。8) -m パラメータを指定せずに SQL Server サービスを再起動します。

これで完了です。SQL Server に再度ログインし、SA パスワードをリセットします。万一に備えて SA パスワードを保存します。

ソース

于 2014-01-23T15:59:10.333 に答える