Вибрана відповідь та деякі інші - це добре. Я просто хочу дати більш чисте пояснення SQL. Приходить до того ж рішення, що немає (дійсного) власника бази даних.
Обліковий запис власника бази даних, dbo
який згадується помилково, завжди створюється за допомогою бази даних. Тож здається дивним, що його не існує, але ви можете перевірити двома виборами (або одним, але давайте будемо просто).
SELECT [name],[sid]
FROM [DB_NAME].[sys].[database_principals]
WHERE [name] = 'dbo'
який показує SID dbo
користувача в базі даних DB_NAME та
SELECT [name],[sid]
FROM [sys].[syslogins]
показати всі входи (та їх SID) для цього екземпляра сервера SQL. Зверніть увагу, що він не записав жодного префіксу db_name, тому що кожна база даних містить однакову інформацію в цьому представленні.
Тож у випадку помилки вище не буде входу з SID, який призначений користувачеві бази даних dbo.
Як було пояснено вище, зазвичай це відбувається при відновленні бази даних з іншого комп'ютера (де база даних та користувач dbo створювалися за допомогою різних логін). І ви можете виправити це, змінивши право власності на існуючий логін.