Я пытаюсь удалить участника из базы данных, но не могу, потому что он владеет схемой. Однако, когда я иду редактировать пользователя, поле для снятия флажка становится синим и неустранимым. Как я могу удалить принципал из этих схем?
источник
Я пытаюсь удалить участника из базы данных, но не могу, потому что он владеет схемой. Однако, когда я иду редактировать пользователя, поле для снятия флажка становится синим и неустранимым. Как я могу удалить принципал из этих схем?
Попробуйте T-SQL, чтобы сделать это:
alter authorization
on schema::YourSchemaName
to dbo
go
drop user TheUserYouWantToDelete
go
Вы не можете отбросить принципала, который является владельцем схемы, поэтому ALTER AUTHORZATION
изменяет принадлежащую схему (я использовал YourSchemaName
, но, очевидно, заменил ее собственной схемой в вашей базе данных) на dbo
(аналогично, вы можете изменить владельца на любого принципала, который вам нужен в вашем среда). Это позволит вам удалить пользователя, ранее владевшего схемой (например, для целей, которые я использовал TheUserYouWantToDelete
, но теперь это будет не владелец, которого вы хотите удалить).
dbo
схему, мы меняем авторизацию наdbo
принципал. Это мог быть любой участник базы данных.Способ T-SQL работает. Благодаря http://zarez.net/?p=179 я нашел способ SSMS сделать это (UI).
Чтобы изменить владельца схемы из Sql Server Management Studio:
В Object Explorer Details вы можете увидеть список схем и владельцев:
Если вы не знаете, какие схемы принадлежат пользователю, проверьте его свойства.
Откройте свойства схемы, которой владеет Пользователь, и нажмите «Поиск», чтобы найти нового владельца. Если вы не знаете нового владельца, вы можете «Просмотреть» для одного.
и вы можете сменить владельца схемы на dbo (или любого, кто наиболее подходит).
источник