Jak przenieść własność schematu dbo w SQL Server 2012

15

Przez przypadek nadałem użytkownikowi własność schematu db_owner (używając pola wyboru w interfejsie użytkownika, jak poniżej), a teraz nie mogę:

  1. Przenieś własność na innego użytkownika
  2. Usuń użytkownika z bazy danych (chociaż mogę usunąć login na serwerze SQL)

Próbowałem Główny podmiot bazy danych jest właścicielem schematu w bazie danych i nie można go usunąć.

ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo

I pomimo pomyślnego ukończenia, użytkownik nadal jest właścicielem i jest wyszarzony, więc nie mogę tego zrobić w interfejsie użytkownika.

wprowadź opis zdjęcia tutaj

Znaleziono rozwiązanie:

Oprócz odpowiedzi Arrona zdałem sobie sprawę, że uruchomię powyższe polecenie w złym DB (facepalm!). Po poprawieniu DB zarówno powyższy SQL, jak i odpowiedź poniżej zadziałały.

Preet Sangha
źródło

Odpowiedzi:

21

Nieco innym podejściem byłoby oddanie schematu pierwotnemu właścicielowi / schematu zamiast dbo:

ALTER AUTHORIZATION ON SCHEMA::db_owner TO db_owner;
Aaron Bertrand
źródło