La réponse choisie et d'autres sont toutes bonnes. Je veux juste donner une explication plus pure de SQL. La solution est la même : il n'y a pas de propriétaire (valide) de la base de données.
Compte du propriétaire de la base de données dbo
qui est mentionné dans l'erreur est toujours créé avec la base de données. Il semble donc étrange qu'il n'existe pas, mais vous pouvez vérifier avec deux selects (ou un seul, mais restons simples).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
qui indique le SID de dbo
dans la base de données DB_NAME et
SELECT [name],[sid]
FROM [sys].[syslogins]
pour afficher toutes les connexions (et leurs identifiants) pour cette instance de serveur SQL. Remarquez qu'il n'y a pas de préfixe db_name, c'est parce que toutes les bases de données ont les mêmes informations dans cette vue.
Ainsi, en cas d'erreur ci-dessus, il y a ne sera pas se connecter avec le SID attribué à l'utilisateur de la base de données dbo.
Comme expliqué ci-dessus, cela se produit généralement lors de la restauration d'une base de données à partir d'un autre ordinateur (où la base de données et l'utilisateur dbo ont été créés par un login différent). Vous pouvez y remédier en changeant la propriété de la base de données par le login existant.