Объекты поддержки диаграммы базы данных не могут быть установлены ... нет действительного владельца - PullRequest
128 голосов
/ 11 января 2010

Я попытался создать диаграмму базы данных с 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

Следующая ошибка появляется:

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

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

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

Ответы [ 14 ]

202 голосов
/ 20 апреля 2012

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

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

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

enter image description here

176 голосов
/ 11 января 2010

Вы должны рассмотреть учетную запись аутентификации 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
7 голосов
/ 31 января 2017
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

Работает.

5 голосов
/ 05 июля 2016

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

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

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

5 голосов
/ 23 октября 2013

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

3 голосов
/ 09 июля 2018

Выберите базу данных - Щелкните правой кнопкой мыши - Выберите Свойства

Выберите ФАЙЛ в левой части страницы

В поле ВЛАДЕЛЕЦ выберите кнопку, в которой есть три точки (…)

Теперь выберите пользователя ‘sa и нажмите OK

3 голосов
/ 16 октября 2014

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

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

Согласно документации sp_changedbowner это устарело.

На основании ответа Израиля. Ответ Аарона - это не осуждаемый вариант этого.

0 голосов
/ 30 мая 2019

Нужно только выполнить его в редакторе запросов ИЗМЕНЕНИЕ АВТОРИЗАЦИИ НА БАЗЕ ДАННЫХ :: YourDatabase TO [domain \ account];

0 голосов
/ 23 января 2017

Вы должны войти в систему с правами администратора в microsofft sql studio studio management и запустить от имени администратора

0 голосов
/ 02 июня 2015

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

...