私は50人未満の比較的小さな会社で働いており、おそらくDBAに最も近いものです...私は実際にはプログラマーですが、それは重要ではありません。SQL Server 2000
約100の異なるデータベースがあります。それらのほとんどすべてにSQLログインが関連付けられており、そのログインはDB_OWNER
特定のデータベースのデータベースロールに関連付けられています。DB_DATAREADER
データベースの役割に設定されているログインもいくつかあります。
新品のマシンを購入しました(現在は12年前のもので、ハードウェア障害が原因でビジネスが許容できないほど長く停止する可能性があることを心配しています)。SQLServerのバージョンはアップグレードしていません。私たちは2000年に固執するつもりです。
私の質問は、これを行う最も簡単な方法は何ですか。私の考えは、すべてのデータベースを切り離し、それらを新しいマシンにコピーしてから、各データベースを再接続することです。マシン名とIPを同じに保ち、完了したら古いサーバーを削除するだけなので、接続文字列を変更する必要はありません。それはそれほど悪くはないようで、週末に簡単にそれを行うことができます。この方法での私の問題は、それを行った後、データベースからユーザーを削除してから、login
ユーザー名/パスワードを使用して、各ユーザーに適切な役割を割り当てます。私はここに5年しかいませんが、特定のデータベースとプログラムが使用している可能性のあるすべてのユーザー名/パスワードを持っているわけではありません。既存のプログラムを壊したり、すべてのマシンにアクセスしてこれを更新したりする必要はありません...または、古いソースコードを見つけて再コンパイルする必要があります...はい、一部のレガシーのものにはユーザー名/パスワードがハードコーディングされていますソースで:(。
したがって、主な質問はscript
、既存のサーバーで実行して、新しいマシンで実行するスクリプトを生成し、以前と同じユーザー名/パスワードで既存のlogins
、をセットアップできるということだと思います。users
roles
あるマシンから別のマシンにSQLサーバーインスタンスを転送する簡単な方法がある場合。ぜひ聞きたいです。
参考までに、既存のサーバーから仮想マシンで使用するVHDを作成しようとしましたが、そのルートを使用しました。マシンをWindowsで起動させることはできませんでした。それがドライバーの問題だったと思います。