SCROLL
Среднее время на прочтение: 2 мин.

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];
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.