現在、データベースサーバーを使用停止にして、データベースをあるサーバーから別のサーバーに移行しています。データベースのプロパティを取得しようとすると、SQLエラーポップアップが表示されました。
データベース '[データベース名]'のプロパティ所有者は使用できません。このプロパティはこのオブジェクトに存在しないか、アクセス権が不十分なため取得できない可能性があります。(Microsoft.SqlServer.Smo)
事実:
私が実行して報告できる提案やテストはありますか?
おそらく、データベースの所有者をデタッチ/再アタッチするのではなく、[sa]
(または実際には有効なログイン)に設定しただけかもしれません。
ALTER AUTHORIZATION ON DATABASE::dbname TO [sa];
これはおそらく、データベースの作成、アタッチ、または復元を担当するログインが最初は存在しないために発生しました。有効な所有者がいない場合、UIはスマートではなく、適切に失敗します。
問題を修正しましたが、問題の原因は不明です。
データベースをデタッチ/再接続したところ、データベースのプロパティにアクセスできました。
このデータベースはどういうわけかその所有者を失ったようです。それはどうして起こりますか?!
Dbの所有者をsaに変更するだけで、問題なく動作します。これは、データベースの所有者が定義されていない場合に発生します(例:「不明」)。
そのデータベースに対して以下のコマンドを実行すると、正常に動作します
EXEC sp_changedbowner 'sa';