За да съгласувате потребителя с данните за влизане, можете да използвате системната съхранена процедура sp_change_users_login.
sp_change_users_login [ @Action = ] 'action'
[ , [ @UserNamePattern = ] 'user' ]
[ , [ @LoginName = ] 'login' ]
[ , [ @Password = ] 'password' ];
Например:
EXEC sp_change_users_login 'Update_One','User123','User123'
Ако имате много потребители, които не са синхронизирани, можете да използвате курсор, за да извадите всички потребители и да изпълните тази команда вместо тях. Няма неблагоприятен ефект от това да се изпълнява срещу потребители, които не са синхронизирани, и ще коригира всички осиротели потребители.
DECLARE @sql NVARCHAR(MAX);
DECLARE curSQL CURSOR
FOR
SELECT 'EXEC sp_change_users_login ''UPDATE_ONE'', ''' + name + ''', ''' + name + ''''
FROM sysusers
WHERE issqluser = 1
AND name NOT IN ( 'guest', 'dbo', 'sys', 'INFORMATION_SCHEMA' )
OPEN curSQL
FETCH curSQL INTO @sql
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (
@sql
)
FETCH curSQL INTO @sql
END
CLOSE curSQL
DEALLOCATE curSQL
Това трябва да се изпълни от контекста на базата данни, в която трябва да фиксирате потребителите.