Jawaban yang dipilih dan beberapa yang lain semuanya baik. Saya hanya ingin memberikan penjelasan murni SQL. Itu datang ke solusi yang sama bahwa tidak ada pemilik basis data (valid).
Akun pemilik basis data dbo
yang disebutkan dalam kesalahan selalu dibuat dengan basis data. Jadi sepertinya aneh bahwa itu tidak ada tetapi Anda dapat memeriksa dengan dua pilihan (atau satu tapi mari kita tetap sederhana).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
yang menunjukkan SID dbo
pengguna di basis data DB_NAME dan
SELECT [name],[sid]
FROM [sys].[syslogins]
untuk menampilkan semua login (dan SID mereka) untuk contoh server SQL ini. Perhatikan itu tidak menulis awalan db_name, itu karena setiap database memiliki informasi yang sama dalam pandangan itu.
Jadi dalam hal kesalahan di atas tidak akan ada login dengan SID yang ditugaskan untuk pengguna database dbo.
Seperti dijelaskan di atas bahwa biasanya terjadi ketika mengembalikan database dari komputer lain (di mana database dan pengguna dbo dibuat oleh login yang berbeda). Dan Anda dapat memperbaikinya dengan mengubah kepemilikan menjadi login yang ada.