WindowsServerをローカルからクラウドに移動して、SqlServerExpressもインストールして、あとはデータベースを移動するだけになりました。
ところが、
ココに注意
Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。
というエラーが発生してデータベースの復元ができません。
冷静に原因を追究しないと時間の無駄
自分は焦ってしまって、何度も元のデータベースからバックアップデータを作成して、新しいデータベースの環境で何度も復元をしました。
相当な時間を費やしてから、メッセージをダブルクリックしてみると、下記の様なエラーの詳細がでてきました。
どうもバックアップのデータベースが壊れている訳じゃなく、
ココがポイント
権限の問題のようです!
権限を変更するがエラー発生
「sa」は×になっていました。ちょっと記憶がないです。
現在ログインしているアカウントで、サーバーロールから、sysadminを追加しようとしました。
変更する権限が無いとかで追加できません。
やっぱり、sa管理者アカウントじゃないとダメなのだろうか!?
そうはいっても、復活させる方法が分かりません。
管理者saのパスワード変更【無意味】
saでログインするも、パスワードで弾かれてしまってログインできません。
そこで、クエリからsaのパスワードを変更することにしました。
ちなみに、コマンドから変更する方法もあるようですが、やって見たところダメでした。
結果、クエリからsaのパスワードを変更しようとしましたが、権限が無い為変更できませんでした。
解決方法は簡単だった!
もう、SqlServerを再インストールしようとまで路頭に迷っていました。
ネット検索すると、新規にデータベースを作成して、データベース名を変更して・・・とかの方法もありましたが、メンドクサソウです。
もうダメかなって思った時に、現在のログイン方法に目が行きました。
SQL Server認証で作成したログインアカウントとパスワードでログインしていました。
そういえば
ココがポイント
Windows認証でログイン
ってあったよな!って気づきました。
そういえば、自分のSqlServerをインストールした時は、
どうせ、リモートディスクトップ接続でサーバー直接触るのでデータベースいじる時は、Windows認証でログインすればいいので、saを使えるようにしてなかったのだと思い出しました。
無駄な時間を費やしてしまったーーーー!
Windows認証でログイン後は、通常通りの復元方法で何の問題なく復元することができました。
ログイン方法を忘れてしまって、無駄な時間を費やしましたがブログネタにもなったし、二度目の失敗は無いだろうから良しとしました。
【追記】DBに接続できない
復元ができましたが、端末のAccessから接続ができないのです。
ODBC接続も試してみましたが、接続できません。
エラーは、42000と4064となりました。
どうも、
ココに注意
ODBC接続しているアカウントに接続権限が無い
ようです。
SqlServerへWindows認証でログインして、権限を変更しました。
所有するスキーマとメンバーシップの設定にて、db_ownerにしたら接続できるようになりました。
いろいろと面倒ですね。