База данных Диаграмма Поддержка Объекты не могут быть установлены... нет действительного владельца

Я попытался создать диаграмму базы данных с SQL Server 2008, но возникает ошибка:

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

Затем я попробовал следующее:

EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO

Следующий erorr всплывает:

Msg 15404, уровень 16, состояние 11, строка 1 Не удалось получить информацию о Группа Windows NT/пользователь 'WIN-NDKPHUPPNFL\Administrator', ошибка код 0x534.

Проблема заключается в том, что имя компьютера изменилось на "DevPC". Я также изменил это в обновлении script, но по-прежнему та же ошибка 15404.

Что я могу сделать, чтобы исправить эту досадную ошибку?

Ответ 1

Вы должны учитывать учетную запись аутентификации SQL для владения базой данных; то вам не нужно беспокоиться о том, что приходящие и исходящие аккаунты, базы данных или экземпляры перемещаются на разные серверы, а ваше следующее имя ПК меняется. У меня есть несколько систем, в которых мы используем:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];

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

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];

Поскольку переименование машины на DevPC устраняет локальную учетную запись, которая раньше называлась WIN-ND...\Administrator, и это также аннулирует текущего владельца базы данных.

Если SELECT @@SERVERNAME; неточно (он должен сказать DevPC), то для обеспечения переименования вашего сервера в SQL Server вам также может потребоваться следующее:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO

Ответ 2

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

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

после этого, теперь вы сможете получить доступ к диаграммам базы данных.

enter image description here

Ответ 3

1.Выберите свою базу данных >> Right Click >> Select Properties
2.Выберите FILE в левой части страницы
3. В поле OWNER выберите кнопку с тремя точками (...) в ней
4. Теперь выберите пользователя 'sa' или NT AUTHORITY\SYSTEM и нажмите OK

Ответ 4

Введите "SA" вместо "sa" в текстовое поле владельца. Это сработало для меня.

Ответ 5

У меня была та же проблема.
Я хотел посмотреть мою диаграмму, которую я создал в тот же день на работе, дома. Но я не мог из-за этого сообщения.
Я узнал, что владелец базы данных был пользователем моего компьютера - как и ожидалось. но поскольку компьютер находится в домене компании, и я не подключен к сети компании, база данных не может решить владельца.

Итак, я сделал изменить владельца локальному пользователю, и это сработало!!
Надеюсь, это поможет кому-то.

Вы меняете пользователя, щелкнув правой кнопкой мыши по базе данных, свойствам, файлам, владельцам

Ответ 6

Это исправило это для меня. Он устанавливает владельца, найденного в разделе "файлы" окна свойств базы данных, и выполняется по сценарию студии управления.

USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

В соответствии с документацией sp_changedbowner это устарело.

Исходя из ответа Израиля. Ответ Аарона - это не устаревшая вариация этого.

Ответ 7

USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

Он работает.

Ответ 8

Я просто испытал это. Я прочитал предложения на этой странице, а также предложения SQL Authority (что то же самое), и ни одно из вышеописанных не было выполнено.

В конце концов, я удалил учетную запись и воссоздал (с тем же именем пользователя/паролем). Именно так, все проблемы исчезли.

К сожалению, это означает, что я не знаю, что пошло не так, поэтому я не могу поделиться ни с чем другим.

Ответ 9

1.Нажмите на свою базу данных, 2. Затем выберите свойства. 3.Выберите параметр уровня совместимости, выберите sql 2008 [100], если вы работаете с Microsoft sql 2008.

4. Затем выберите файл и напишите (sa) в текстовом поле владельца

100% работает для меня.

Ответ 10

Более простой способ решить эти проблемы - это щелкнуть правой кнопкой мыши имя вашей базы данных, выбрать "Новый запрос", ввести "exec sp_changedbowner" и выполнить запрос. Тогда вам будет хорошо.

Ответ 11

вы должны ввести его правой кнопкой мыши на студию управления сервером microsofft sql и запустить как admin

Ответ 12

Реальная проблема заключается в том, что у владельца по умолчанию (dbo) нет имени пользователя, сопоставленного с ним вообще. Когда я попытался сопоставить имя пользователя sa с владельцем базы данных, я получил еще одну ошибку с сообщением "Пользователь, группа или роль" dbo "уже существует...". Однако если вы попробуете этот код, он действительно сработает:

EXEC sp_dbcmptlevel 'yourDB', '90';

     

идти

     

ПОСЛЕ АВТОРИЗАЦИИ НА БАЗЕ ДАННЫХ:: yourDB TO "yourLogin"

     

идти

     

используйте [yourDB]

     

идти

     

ВЫПОЛНИТЬ КАК ПОЛЬЗОВАТЕЛЬ = N'dbo 'REVERT

     

идти

Ответ 13

щелкните правой кнопкой мыши по базе данных и выберите свойства. выберите параметр в уровнях совместимости, выберите sql 2005 [90] вместо 2008, если вы работаете с Microsoft SQL Server 2008. затем выберите файл и напишите (sa) в текстовом поле владельца. он будет работать, вероятно,