Версия для печати

Ошибка SQL Server - User, group, or role already exists in the current database

Если вы восстановите базу данных MS SQL, а затем попытаетесь войти в нее, с большой вероятностью, Вы столкнетесь с этой замечательной ошибкой:

User, group, or role already exists in the current database. (.Net SqlClient Data Provider)

К сожалению, используя Sql Management Studio эту проблему не решить. Вам нужно вызывать системную хранимую процедуру sp_change_users_login.

Описание ее дается здесь: https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-change-users-login-transact-sql?view=sql-server-ver15

Я могу немного сэкономить Вам время. Если у Вас есть пользователь в вашей недавно восстановленной базе данных с именем 'НекоторыйЮзер', и Вы уже создали логин на сервере (ведь именно поэтому Вы получили ошибку, о которой мы говорим), то все, что Вам нужно выполнить, это следующую команду:

sp_change_users_login 'AUTO_FIX', 'НекоторыйЮзер'

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

В результате Вы получите примерно такое сообщение:

The row for user 'НекоторыйЮзер' will be fixed by updating its login link to a login already in existence.
The number of orphaned users fixed by updating users was 1.
The number of orphaned users fixed by adding new logins and then updating users was 0.

 

Последнее изменение Четверг, 15 июля 2021 18:18