Как удалить пользователя SQL Server с привилегией владельца базы данных
Мне нужно удалить пользователя со схемой dbowner из базы данных SQL Server. Я не могу уронить его, как есть, так как я получаю это сообщение об ошибке
Ошибка сброса для пользователя "Сетевой сервис". (Microsoft.SqlServer.Smo)
Участник базы данных владеет схемой в базе данных и не может быть удален. (Microsoft SQL Server, ошибка: 15138)
Когда я пытаюсь снять флажок со схемы, принадлежащей этому пользователю, чтобы удалить владельца базы данных, он ничего не делает. У меня вопрос, как я могу удалить этого пользователя или изменить его имя из "Сетевой сервис" в "NT AUTHORITY\NETWORK SERVICE"
6 ответов
Взгляни на это:
http://www.itorian.com/2012/12/the-database-principal-owns-schema-in.html
Это предполагает, что вам нужно сначала добавить другого владельца
У меня была такая же проблема, я запускаю два скрипта, и моя проблема решена.
попробуй это:
В этом запросе вы можете получить схему пользователя в результате для AdventureWorks
база данных
USE AdventureWorks;
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('your username');
после взятия имени схемы вы можете изменить авторизацию на схеме следующим образом:
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
в этом запросе db_owner
Имя схемы, полученное из первого запроса.
наконец, вы можете удалить пользователя без ошибок.
мой источник: SQL SERVER - Исправлено: Ошибка: 15138
У меня такая же проблема, я не могу удалить пользователя
фу
поскольку он говорит:
Поэтому мне нужно перейти в Security -> Schemas и найти dbo, затем щелкнуть правой кнопкой мыши и выбрать Properties:
Затем измените
фу
к
dbo
затем после этого я могу удалить пользователя, которого хочу удалить.
В моем случае я выполняю эти команды и проблема решена:
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;
ALTER AUTHORIZATION ON SCHEMA::db_datareader TO dbo;
ALTER AUTHORIZATION ON SCHEMA::db_datawriter TO dbo;
Моя проблема также была решена вышеуказанным решением:
SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('your username');
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;