La respuesta seleccionada y algunas otras son buenas. Solo quiero dar una explicación más pura de SQL. Se trata de la misma solución que no hay un propietario de base de datos (válido).
La cuenta del propietario de la base de datos dbo
que se menciona por error siempre se crea con la base de datos. Por lo tanto, parece extraño que no exista, pero puede verificarlo con dos selecciones (o una, pero hagámoslo simple).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
que muestra el SID del dbo
usuario en la base de datos DB_NAME y
SELECT [name],[sid]
FROM [sys].[syslogins]
para mostrar todos los inicios de sesión (y sus SID) para esta instancia del servidor SQL. Tenga en cuenta que no escribió ningún prefijo db_name, porque cada base de datos tiene la misma información en esa vista.
Entonces, en caso de error anterior , no habrá inicio de sesión con SID asignado al usuario de base de datos dbo.
Como se explicó anteriormente, eso generalmente ocurre cuando se restaura la base de datos desde otra computadora (donde la base de datos y el usuario de dbo se crearon mediante un inicio de sesión diferente) Y puede solucionarlo cambiando la propiedad al inicio de sesión existente.