Ausgewählte Antwort und einige andere sind alle gut. Ich möchte nur eine reinere Erklärung für SQL geben. Es kommt zu derselben Lösung, dass es keinen (gültigen) Datenbankeigentümer gibt.
Das fälschlicherweise dbo
erwähnte Datenbankbesitzerkonto wird immer mit der Datenbank erstellt. Es scheint also seltsam, dass es nicht existiert, aber Sie können es mit zwei Auswahlen überprüfen (oder einer, aber lassen Sie es uns einfach halten).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
Hier wird die SID des dbo
Benutzers in der Datenbank DB_NAME und angezeigt
SELECT [name],[sid]
FROM [sys].[syslogins]
um alle Anmeldungen (und ihre SIDs) für diese SQL Server-Instanz anzuzeigen. Beachten Sie, dass kein Präfix db_name geschrieben wurde, da jede Datenbank in dieser Ansicht dieselben Informationen enthält.
Im Falle des oben genannten Fehlers erfolgt keine Anmeldung mit der SID, die dem Datenbank-Dbo-Benutzer zugewiesen ist.
Wie oben erläutert, geschieht dies normalerweise beim Wiederherstellen der Datenbank von einem anderen Computer (wobei Datenbank und Dbo-Benutzer durch unterschiedliche Anmeldungen erstellt wurden). Sie können das Problem beheben, indem Sie den Eigentümer auf das vorhandene Login ändern.