Как удалить пользователя 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;
ALTER AUTHORIZATION ON SCHEMA::[NT AUTHORITY\SYSTEM] TO dbo
Другие вопросы по тегам