Eso es un problema muy común después de una restauración. Un usuario (base de datos específica) y un inicio de sesión (todo el servidor) tienen un SID. El problema probablemente sea que el inicio de sesión que creó tiene un SID diferente del inicio de sesión en la base de datos de producción. Puede comprobar el inicio de sesión y el SID de usuario como:
select UserSid from sysusers where name = 'UserName'
select LoginSid from master.dbo.syslogins where name = 'UserName'
Aquí es una secuencia de comandos se corre después de cada copia de seguridad para reparar el inicio de sesión - enlace de base de datos:
declare user_cursor cursor forward_only read_only for
SELECT distinct u.name
FROM sysusers u
JOIN master.dbo.syslogins l ON u.name = l.name
WHERE u.issqluser <> 0
declare @user sysname;
open user_cursor
fetch next from user_cursor into @user;
while @@fetch_status = 0
begin
if @user <> 'dbo'
begin
print ''
print 'Updating user "' + @user + '"'
exec sp_change_users_login 'Auto_Fix', @user
end
fetch next from user_cursor into @user
end;
close user_cursor
deallocate user_cursor
bien, he conseguido quitar el usuario cambiando el esquema. Así que agregué un nuevo nombre de usuario y usuario, pero igual recibo el mismo error: Detalles de la Excepción: System.Data.SqlClient.SqlException: Falló el inicio de sesión para el usuario 'xx'. – user441365
Comprobé en el visor de eventos y el evento de error: 1309 – user441365
@ user441365 - Consulte este enlace aquí para obtener más detalles sobre este error. ¿Cuál es el estado? http://msdn.microsoft.com/en-us/library/ms366351.aspx – codingbadger