Принцип роботи бази даних має схему в базі даних, і повідомлення не може бути відкинуте


28

Я намагаюся видалити головне з бази даних, але не можу, тому що у нього є схема. Однак, коли я йду редагувати користувача, поле, щоб зняти прапорці схеми, синє та незнімне. Як я можу видалити головне з цих схем?

Відповіді:


31

Спробуйте зробити T-SQL для цього:

alter authorization
on schema::YourSchemaName
to dbo
go

drop user TheUserYouWantToDelete
go

Ви не можете відмовитись від принципала, який є власником схеми, тому ви ALTER AUTHORZATIONзмінюєте схему, що належить (я використав YourSchemaName, але явно замінюєте її власною схемою у вашій базі даних) на dbo(також ви можете змінити право власності на будь-який головний, який вам потрібен у вашій базі середовище). Це дозволить вам скинути користувача, який раніше TheUserYouWantToDeleteмав схему (наприклад, я використовував цілі , але це буде тепер невласник, якого ви хочете скинути).


Гаразд, так це спрацювало. Я трохи розгублений, чому, однак. Чому мені потрібно авторизувати схему на іншу схему? Можливо, мені потрібно переглянути схеми ...
rsteckly

1
@rsteckly спрощено, авторизація = право власності. Якщо ви можете видалити користувача, який має схему, схема не буде дійсною, оскільки власника вже немає. Уявіть, що ви можете видалити клієнта, який зробив замовлення. Що означає CustomerID у таблиці Замовлення, якщо вже немає Клієнта, на який він вказує? Де я повинен відвантажити замовлення?
Аарон Бертран

Вибачте, мій приклад був недостатньо пояснений. Ми не змінюємо авторизацію dboсхеми, ми змінюємо авторизацію до dboпринципала. Це міг бути будь-який головний бази даних.
Томас Стрінгер

30

Шлях T-SQL працює. Завдяки http://zarez.net/?p=179 я знайшов спосіб SSMS зробити це (UI).

Щоб змінити власника схеми від Sql Server Management Studio:

Expand your database -> Security -> Schemas

У подробицях про Object Explorer ви можете побачити список схем та власників:

введіть тут опис зображення

Якщо ви не знаєте, якою схемою (ими) користувач користується, перевірте властивості Користувача.

введіть тут опис зображення

Відкрийте властивості схеми, якою користувач користується, та натисніть «Пошук», щоб знайти нового власника. Якщо ви не знаєте нового власника, його можна "Оглянути".

Properites -> Search -> Browse

і ви можете змінити власника схеми на dbo (або того, хто є найбільш відповідним).

введіть тут опис зображення


1
Шлях T-SQL набагато кращий і гнучкіший. Робити це через GUI - це завжди є біль!
Кін Шах

Я все за T-SQL спосіб, також тому, що його можна використовувати в сценаріях.
woodvi

2
Примітка: F7 - це ярлик для відображення деталей, якщо вони не з’являються
Simon_Weaver
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.