Wybrana odpowiedź i niektóre inne są dobre. Chcę tylko wyjaśnić bardziej SQL. Dochodzi do tego samego rozwiązania, że nie ma (poprawnego) właściciela bazy danych.
Konto właściciela bazy danych, o dbo
którym wspomniano błędnie, jest zawsze tworzone z bazą danych. Wydaje się więc dziwne, że nie istnieje, ale możesz to sprawdzić za pomocą dwóch wyborów (lub jednego, ale bądźmy prostymi).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
który pokazuje SID dbo
użytkownika w bazie danych DB_NAME i
SELECT [name],[sid]
FROM [sys].[syslogins]
aby wyświetlić wszystkie dane logowania (i ich identyfikatory SID) dla tej instancji serwera SQL. Zauważ, że nie zapisał żadnego prefiksu db_name, ponieważ każda baza danych ma takie same informacje w tym widoku.
W przypadku powyższego błędu nie będzie loginu z identyfikatorem SID przypisanym do użytkownika dbo bazy danych.
Jak wyjaśniono powyżej, zwykle dzieje się tak podczas przywracania bazy danych z innego komputera (gdzie baza danych i użytkownik dbo zostały utworzone przez inny login). Możesz to naprawić, zmieniając własność na istniejący login.