Объекты поддержки диаграммы базы данных не могут быть установлены

Это довольно запутанно. Я получаю эту ошибку всякий раз, когда я пытаюсь добавить (или даже просмотреть) Диаграммы базы данных node в базе данных node в SQL Server Management Studio Express (SQL Server 2008):

Объекты поддержки диаграммы базы данных не могут быть установлены, поскольку в этой базе данных нет действительного владельца. Чтобы продолжить, сначала используйте страницу "Файлы" диалогового окна "Свойства базы данных" или оператор ALTER AUTHORIZATION, чтобы установить владельца базы данных на допустимый логин, а затем добавить объекты поддержки диаграммы базы данных.

Хорошо, отлично. Проблема в том, что, согласно Management Studio, мой логин является владельцем БД. Я использую проверку подлинности Windows при входе в Management Studio, и если я перейду на страницу "Файлы" в диалоговом окне "Свойства базы данных", мой логин будет владельцем.

Итак, я думаю, что, возможно, я не являюсь членом правильной роли сервера, чтобы фактически быть владельцем, однако мой логин является членом роли сервера sysadmin, который, согласно эта страница MDSN является преимуществом для владения базой данных.

Итак, наконец, я делаю некоторые поисковые запросы, и я вижу людей, которые мне говорят, чтобы попытаться выполнить такой оператор:

EXEC sp_dbcmptlevel 'yourDB', '90';
go
ALTER AUTHORIZATION ON DATABASE::yourDB TO "yourLogin"
go
use [yourDB]
go
EXECUTE AS USER = N'dbo' REVERT
go

Моя проблема заключается в том, что я действительно не понимаю, что делает этот код, и никакая попытка попробовать разные имена пользователей или имена баз данных с вышеуказанным оператором (который, как представляется, выполняется успешно), кажется, устраняет мою проблему.

Может ли кто-нибудь подумать о чем-нибудь, что я могу потерять?

Ответ 1

Пробовал ли вы этот набор шагов, он может решить вашу проблему:

В SQL Server Management Studio выполните следующее:

  • Щелкните правой кнопкой мыши на своей базе данных, выберите свойства
  • Перейдите на страницу параметров
  • В раскрывающемся списке справа с надписью "Уровень совместимости" выберите "SQL Сервер 2005 (90)"
  • Перейдите на страницу с файлами
  • Введите "sa" в текстовое поле владельца.
  • Нажмите OK

Предполагая, что это работает, и вы можете добавить диаграммы БД, вы можете изменить владельца обратно на имя пользователя Windows.

Ответ 2

Просто попробуйте это.

Alter AUTHORIZATION ON DATABASE::YourDbName TO [sa];

Ответ 3

Это будет работать;

АЛЬТЕРНАТИВНАЯ АВТОРИЗАЦИЯ В БАЗЕ ДАННЫХ:: yourDB TO NT AUTHORITY\SYSTEM

Но это только для решения temp.. по любой причине, если вам нужно восстановить БД, тогда проблема будет присутствовать..

Ответ 4

Ну, какое-то время я попытался сделать несколько вещей, и ничего не получилось. После этого я внимательно прочитал ошибку, и я понял, что решение было предложено только при ошибке. Мне просто нужно внимательно его прочитать.

Ниже приведены шаги, которые я сделал для выполнения этой работы:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa
GO

ИЛИ

  • Выберите свою базу данных > Щелкните правой кнопкой мыши > Выбрать свойства
  • Выберите FILE в левой части страницы
  • В поле OWNER выберите кнопку с тремя точками (...) в ней
  • Теперь выберите пользователя или NT AUTHORITY\SYSTEM и нажмите OK.

Ответ 5

Это сработало для меня

ALTER AUTHORIZATION ON DATABASE ::DATABASE TO sa