Не удается удалить пользователя SQL или подключиться с использованием правильных учетных данных - PullRequest
1 голос
/ 26 марта 2011

Использование SQL Server 2008 Express

Я создал новую базу данных, а затем восстановил копию базы данных поверх нее. Пользователь SQL существует в резервной копии базы данных, поэтому он был добавлен в базу данных посредством операции восстановления. Когда я пытаюсь удалить этого пользователя, я получаю:

"Участник базы данных владеет схемой в базе данных и не может быть удален"

Это сбивает с толку. Пользователь еще не существует, но ему принадлежит схема? Почему его нельзя удалить?

Далее, если я добавлю пользователя с таким именем и действительным паролем, он даже не сможет подключиться к базе данных.

Это всегда беспокоило меня, в чем причина и как я могу это исправить?

Ответы [ 2 ]

8 голосов
/ 26 марта 2011

Это, вероятно, потому что вы восстановили базу данных, и пользователь уже был в этой базе данных во время резервного копирования. Восстановить связь между логином и пользователем с помощью

sp_change_users_login 'Auto_Fix', 'username'

http://msdn.microsoft.com/en-us/library/ms174378.aspx

также см.

http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm

4 голосов
/ 22 марта 2012

sp_change_users_login у меня не сработало.

Но это сработало:

SELECT s.name
FROM sys.schemas s
WHERE s.principal_id = USER_ID('user')

Затем возьмите каждую из перечисленных выше записей и замените SCHEMA_NAME схемой, возвращенной сследующее утверждение

ALTER AUTHORIZATION ON SCHEMA::SCHEMA_NAME TO dbo

После того, как я сделал это для каждой записи, я смог удалить учетную запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...