Jak zmienić właściciela bazy danych SQL Server?

Gdy przypadkowo klikam na zakładkę diagramy bazy danych, pojawia się jeden z następujących błędów:

Obiekty wspomagające diagram bazy danych nie można zainstalować, ponieważ to baza danych nie ma prawidłowego właściciela. Aby kontynuować, najpierw użyj strony Pliki okna dialogowego Właściwości bazy danych lub Oświadczenie o zmianie autoryzacji aby ustawić właściciela bazy danych na poprawną Zaloguj się, a następnie dodaj diagram bazy danych obiekty wsparcia.

- - - LUB - - -

The baza danych nie posiada jednego lub więcej z obiektów pomocniczych wymaganych do korzystania tworzenie diagramów baz danych. Czy chcesz stworzyć je?

Jaka jest składnia zmiany właściciela tej bazy danych na 'sa'?

Author: Even Mien, 2009-04-20

4 answers

Aby zmienić właściciela obiektu spróbuj wykonać następujące czynności

EXEC sp_changedbowner 'sa'

To jednak nie jest Twój problem, aby zobaczyć diagramy, należy utworzyć obiekty Da Vinci Tools (zobaczysz tabele i procs zaczynające się od dt_) po tym

 79
Author: SQLMenace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-20 18:17:26

Aby zmienić właściciela bazy danych:

ALTER AUTHORIZATION ON DATABASE::YourDatabaseName TO sa

Począwszy od SQL Server 2014 nadal możesz używać sp_changedbowner, mimo że Microsoft obiecał usunąć go w" przyszłej " wersji po SQL Server 2012. Usunęli go jednak z SQL Server 2014 BOL.

 70
Author: Alex Aza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-28 04:57:14

Jest to znak zachęty do utworzenia kilku obiektów, takich jak sp_help_diagram (?), które nie istnieją.

To nie powinno mieć nic wspólnego z właścicielem db.

 3
Author: gbn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-20 18:17:20

Oto sposób na zmianę właściciela we wszystkich DBS (z wyjątkiem systemu)

EXEC sp_msforeachdb'
USE [?]
IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb''
BEGIN
 exec sp_changedbowner ''sa''
END
'
 0
Author: sawsomething,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-28 18:23:54