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

StackOverflow https://stackoverflow.com/questions/2043382

Вопрос

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

Объекты поддержки схемы базы данных не удается установить, поскольку у этой базы данных нет действительного владельца.Чтобы продолжить, сначала воспользуйтесь страницей Файлы диалогового окна Свойства базы данных или инструкцией ИЗМЕНИТЬ АВТОРИЗАЦИЮ чтобы присвоить владельцу базы данных действительный логин, затем добавьте схему базы данных объекты поддержки.

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

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.

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

Это было полезно?

Решение

Вам следует рассмотреть учетную запись проверки подлинности 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

Другие советы

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

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

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

enter image description here

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

Это работает.

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

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

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

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

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

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

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

Основываясь на ответе Израиля.Ответ Аарона - это не устаревший вариант этого.

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

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

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

Теперь выберите user ‘sa и нажмите OK

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

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

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

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

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

у меня это работает на 100%.

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

вы должны войти как администратор щелкнуть правой кнопкой мыши Microsoft office sql server management studio и запустить от имени администратора

Нужно только выполнить это в редакторе запросов ИЗМЕНИТЬ АВТОРИЗАЦИЮ В БАЗЕ ДАННЫХ::YourDatabase НА [домен \ учетная запись];

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

EXEC sp_dbcmptlevel 'yourDB', '90';

Вперед

ИЗМЕНИТЕ АВТОРИЗАЦИЮ В БАЗЕ ДАННЫХ::yourDB НА "yourLogin"

Вперед

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

Вперед

ВЫПОЛНИТЬ ОТ ИМЕНИ ПОЛЬЗОВАТЕЛЯ = N'dbo' ВЕРНУТЬ

Вперед

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top