DB_1 データベースのバックアップを DB_2 データベースに復元するときに問題が発生しました。しかし、ユーザー dbo のログイン名がありません ()。ログイン名を再作成するにはどうすればよいですか?? SQL 2000 を使用しています
3 に答える
ここにいるのは、孤立したユーザーと呼ばれます。つまり、ユーザーは復元したデータベースに存在しますが、データベース サーバーでログインとして設定されていません。
ユーザーが Windows 統合ログインの場合は、ログインをデータベース サーバーに追加するだけで済みます。SQL Server ログインの場合は、少しトリッキーです。
孤立したユーザーが復元されたデータベースに存在するというレポートを取得するには、次を実行します。
USE restored_database
GO
exec sp_change_users_login @Action='Report';
GO
ログイン時にデータベースを再作成し、復元されたデータベースにリンクするには、次のコマンドを実行します。
EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
復元されたデータベースで sp_dropuser 'user' を呼び出します。
ユーザーがサーバーに既に存在する場合は、復元されたデータベースへのアクセス許可をユーザーに付与します。それ以外の場合は、サーバーでユーザーを再作成してから、復元されたデータベースへのアクセス許可を付与します。
データベース所有者として「sa」を追加するため、バックアップをそのカタログに復元する前に、DB_2カタログのdb所有者ロールに「sa」を追加します。
ところで、失礼に聞こえたら申し訳ありませんが、stackoverflowは主にプログラミングの質問であり、sysadminの質問ではありません。sqlserver指向のボードで質問すると、より多くの応答が得られると思います。