Server

【SqlServer復元失敗】Transact-SQLステートメントまたはバッチの実行中に例外が発生

SqlServer復元エラー

WindowsServerをローカルからクラウドに移動して、SqlServerExpressもインストールして、あとはデータベースを移動するだけになりました。

ところが、

ココに注意

Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。

というエラーが発生してデータベースの復元ができません。

 

冷静に原因を追究しないと時間の無駄

自分は焦ってしまって、何度も元のデータベースからバックアップデータを作成して、新しいデータベースの環境で何度も復元をしました。

相当な時間を費やしてから、メッセージをダブルクリックしてみると、下記の様なエラーの詳細がでてきました。

SqlServer復元エラー

 

どうもバックアップのデータベースが壊れている訳じゃなく、

ココがポイント

権限の問題のようです!

 

権限を変更するがエラー発生

「sa」は×になっていました。ちょっと記憶がないです。

現在ログインしているアカウントで、サーバーロールから、sysadminを追加しようとしました。

SqlServer復元エラー

変更する権限が無いとかで追加できません。

SqlServer復元エラー

 

やっぱり、sa管理者アカウントじゃないとダメなのだろうか!?

そうはいっても、復活させる方法が分かりません。

 

管理者saのパスワード変更【無意味】

saでログインするも、パスワードで弾かれてしまってログインできません。

そこで、クエリからsaのパスワードを変更することにしました。

ちなみに、コマンドから変更する方法もあるようですが、やって見たところダメでした。

 

saパスワード変更

結果、クエリからsaのパスワードを変更しようとしましたが、権限が無い為変更できませんでした。

 

解決方法は簡単だった!

もう、SqlServerを再インストールしようとまで路頭に迷っていました。

ネット検索すると、新規にデータベースを作成して、データベース名を変更して・・・とかの方法もありましたが、メンドクサソウです。

もうダメかなって思った時に、現在のログイン方法に目が行きました。

SqlServer復元エラー

SQL Server認証で作成したログインアカウントとパスワードでログインしていました。

そういえば

ココがポイント

Windows認証でログイン

ってあったよな!って気づきました。

 

SqlServer復元エラー

 

そういえば、自分のSqlServerをインストールした時は、

どうせ、リモートディスクトップ接続でサーバー直接触るのでデータベースいじる時は、Windows認証でログインすればいいので、saを使えるようにしてなかったのだと思い出しました。

 

無駄な時間を費やしてしまったーーーー!

 

Windows認証でログイン後は、通常通りの復元方法で何の問題なく復元することができました。

ログイン方法を忘れてしまって、無駄な時間を費やしましたがブログネタにもなったし、二度目の失敗は無いだろうから良しとしました。

 

【追記】DBに接続できない

復元ができましたが、端末のAccessから接続ができないのです。

ODBC接続も試してみましたが、接続できません。

エラーは、42000と4064となりました。

どうも、

ココに注意

ODBC接続しているアカウントに接続権限が無い

ようです。

SqlServerへWindows認証でログインして、権限を変更しました。

DB接続できない

所有するスキーマとメンバーシップの設定にて、db_ownerにしたら接続できるようになりました。

いろいろと面倒ですね。

 

-Server
-, , , , , , , ,

Translate »

© 2022 PCTips