Seçilen cevap ve bazılarının hepsi iyi. Sadece daha fazla SQL saf açıklaması vermek istiyorum. Aynı çözüm, (geçerli) bir veritabanı sahibi olmadığı anlamına gelir.
Yanlışlıkla dbo
belirtilen veritabanı sahibi hesabı her zaman veritabanı ile oluşturulur. Bu yüzden var olmadığı garip görünüyor, ancak iki seçimle (veya bir tane ile kontrol edebilirsiniz, ancak basit tutalım).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
dbo
DB_NAME veritabanında kullanıcının SID'sini gösteren ve
SELECT [name],[sid]
FROM [sys].[syslogins]
Bu SQL sunucusu örneği için tüm girişleri (ve bunların SID'lerini) göstermek için. Herhangi bir db_name öneki yazmadı, çünkü her veritabanı bu görünümde aynı bilgilere sahip olduğuna dikkat edin.
Bu nedenle, yukarıdaki hata durumunda, veritabanı dbo kullanıcısına atanan SID ile giriş yapılmayacaktır .
Yukarıda açıklandığı gibi, genellikle başka bir bilgisayardan veritabanını geri yüklerken olur (burada veritabanı ve dbo kullanıcısı farklı oturum açma tarafından oluşturulur). Sahipliği mevcut giriş olarak değiştirerek düzeltebilirsiniz.