MSSQL. Ошибка — «User, group, or role already exists in the current database»
После миграции базы данных с одного сервера на другой и далее при попытке сопоставить базу данных с пользователем и назначить ему роли или разрешения, я получил ошибку — User, group or role 'privuser' already exists in current database. (Microsoft SQL Server, Error: 15023)
Данная ошибка появляется в следствии того что смигрированная база данных уже содержит пользователя, группу или роль с таким именем, но не связан с логином на уровне сервера.
Чтобы это исправить можно воспользоваться хранимой процедурой sp_change_users_login
.
USE [DATABASE];
EXEC sp_change_users_login 'Update_One', 'privuser', 'privuser';
Так же согласно описанию хранимой процедуры , Microsoft в будущих версиях >2022
уберет данную функцию и в таких случая нужно использовать ALTER USER
. Пример выполнить сопоставление пользователя.
USE [DATABASE];
ALTER USER [privuser] WITH LOGIN = [privuser];
Обсуждение
Нет комментариев.