Podmiot główny bazy danych jest właścicielem schematu w bazie danych i nie można usunąć komunikatu


28

Próbuję usunąć podmiot główny z bazy danych, ale nie mogę, ponieważ jest on właścicielem schematu. Kiedy idę do edycji użytkownika, pole do odznaczenia schematów jest niebieskie i nie można go usunąć. Jak mogę usunąć zleceniodawcę z tych schematów?

Odpowiedzi:


31

Wypróbuj T-SQL, aby to zrobić:

alter authorization
on schema::YourSchemaName
to dbo
go

drop user TheUserYouWantToDelete
go

Nie możesz upuścić podmiotu głównego, który jest właścicielem schematu, więc ALTER AUTHORZATIONzmiany posiadanego schematu (użyłem YourSchemaName, ale oczywiście zastąpienie go posiadanym schematem w bazie danych) na dbo(podobnie, możesz zmienić własność na dowolną zasadę, której potrzebujesz w swoim środowisko). To pozwoli ci usunąć użytkownika, który wcześniej był właścicielem schematu (na przykład cele, z których korzystałem TheUserYouWantToDelete, ale będzie to teraz nie-właściciel, którego chcesz usunąć).


Okej, więc to zadziałało. Jednak jestem trochę zdezorientowany, dlaczego. Dlaczego muszę autoryzować schemat na inny schemat? Może muszę przejrzeć schematy ...
— rsteckly,

1
@rsteckly Uproszczony, autoryzacja = własność. Jeśli możesz usunąć użytkownika, który jest właścicielem schematu, schemat nie byłby prawidłowy, ponieważ właściciel już nie istnieje. Wyobraź sobie, że możesz usunąć klienta, który złożył zamówienie. Co oznacza identyfikator klienta w tabeli zamówień, jeśli nie ma już wskazanego klienta? Gdzie mam wysłać zamówienie?
— Aaron Bertrand

Przepraszam, mój przykład nie został dobrze wyjaśniony. Nie zmieniamy autoryzacji na dboschemat, zmieniamy autoryzację na dbozleceniodawcę. Może to być dowolna jednostka główna bazy danych.
— Thomas Stringer

30

Sposób T-SQL działa. Dzięki http://zarez.net/?p=179 znalazłem sposób SSMS, aby to zrobić (UI).

Aby zmienić właściciela schematu z Sql Server Management Studio:

Expand your database -> Security -> Schemas

W szczegółach Object Explorer możesz zobaczyć listę schematów i właścicieli:

wprowadź opis zdjęcia tutaj

Jeśli nie wiesz, jakie schematy posiada Użytkownik, sprawdź jego właściwości.

wprowadź opis zdjęcia tutaj

Otwórz właściwości schematu, którego właścicielem jest użytkownik, i kliknij „Wyszukaj”, aby znaleźć nowego właściciela. Jeśli nie znasz nowego właściciela, możesz „Przeglądaj”.

Properites -> Search -> Browse

i możesz zmienić właściciela schematu na dbo (lub tego, który jest najbardziej odpowiedni).

wprowadź opis zdjęcia tutaj


1
Sposób T-SQL jest znacznie lepszy i elastyczny. Robienie tego za pomocą GUI zawsze powoduje ból!
— Kin Shah

Jestem zwolennikiem T-SQL, także dlatego, że można go używać w skryptach.
— woodvi

2
Uwaga: F7 to skrót do wyświetlania szczegółów, jeśli się nie pojawi
— Simon_Weaver
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.