Los inicios de sesión de usuario y permisos en una base de datos pueden ser incorrectos después de restaura la base de datos

Seleccione idioma Seleccione idioma
Id. de artículo: 168001 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Si un volcado de una base de datos de usuario de SQL Server se restaura a un servidor diferente de SQL Server (como un servidor de copia de seguridad activo) o en el mismo SQL Server después de volver a generar o volver a cargar una versión anterior de la base de datos principal, los inicios de sesión de usuario y permisos en la base de datos es incorrectas.

Este problema puede revelar sí de varias maneras:
  • Mientras inician una sesión en un servidor 6.x, los usuarios pueden recibir el siguiente error:
    Msj 4002, nivel 14, estado 1, servidor Microsoft SQL Server, línea 0
    Error de inicio de sesión
    DB-Library: Conexión incorrecta.
  • Mientras inician una sesión en un servidor 7.0, los usuarios pueden recibir el siguiente error:
    Msj 18456, nivel 14, estado 1,
    Error de inicio de sesión para el usuario '% ls'.
  • Al intentar tener acceso a objetos de la base de datos, los usuarios pueden recibir el siguiente error:
    Msj 229, nivel 14, estado 1
    %s permiso denegado en el objeto % * s, base de datos %. * s, %.*s de propietario
  • Al intentar crear un inicio de sesión y conceder acceso a la base de datos restaurada o agregar el usuario a la base de datos, se reciba el siguiente error:
    Microsoft SQL-DMO (SQLState de ODBC: 42000) error 15023: usuario o función '% s' ya existe en la base de datos actual.
  • Los usuarios pueden tener permisos en objetos para el que anteriormente tenían no.

Causa

Información de inicio de sesión de usuario se almacena en la tabla syslogins de la base de datos principal. Cambiando los servidores, o modificando esta información por reconstruir o restaurar una versión anterior de la base de datos principal, la información sea diferente de cuando se creó el volcado de base de datos de usuario. Si no existen los inicios de sesión para los usuarios, recibirán un error que indica "Error de conexión" al intentar iniciar sesión en el servidor. Si existen los inicios de sesión de usuario, pero el SUID valores (6.x) o SID valores (7.0) en patrónsyslogins y la tabla sysusers de la base de datos de usuario difieren, los usuarios pueden tener permisos diferentes de lo esperado en la base de datos de usuario.

Nota Si utiliza Microsoft SQL Server 2005, la tabla syslogins y la tabla sysusers se implementan como vistas de compatibilidad. Estas vistas son sys.syslogins y sys.sysusers . Para obtener más información acerca de las vistas de compatibilidad, vea el tema "Vistas de compatibilidad (Transact-SQL)" en libros en pantalla de SQL Server 2005.

Solución

Para evitar este problema, realice una de las siguientes acciones:
  • Si las secuencias de comandos actuales disponibles para agregar los inicios de sesión, usuarios y permisos, colocar y volver a crearlos desde secuencias de comandos. Para obtener ejemplos de uso de secuencias de comandos para transferir inicios de sesión entre servidores, consulte el artículo siguiente de base de Microsoft Knowledge Base:
    246133Cómo: Transferir inicios de sesión y contraseñas entre instancias de SQL Server
    240872Cómo resolver problemas de permisos cuando es movido una base de datos entre servidores SQL Server
  • Puede utilizar el procedimiento almacenado sp_change_users_login para volver a asociar relaciones entre las tablas syslogins, sysusers y sysalternates. Sin embargo, el procedimiento realiza estimaciones más precisas en vínculos y puede permitir que un usuario más privilegios de acceso lo esperado. Ejecución del procedimiento con la opción informe primero generará una lista de usuarios que se modificará. Posteriormente, debe comprobar para garantizar que los usuarios afectados tienen los permisos adecuados. Asimismo, tener en cuenta que el procedimiento de sp_change_users_login no soluciona problemas de permisos derivados de los inicios de sesión y los usuarios creados en un orden diferente en la base de datos donde se restaura la copia de seguridad.
  • Restaurar un volcado de la base de datos principal desde el momento en el volcado de base de datos de usuario en el servidor antes de cargar la base de datos de usuario. Esto garantiza que toda la información de la base de datos de usuario usuario coincide con correctamente con la tabla syslogins en master.

    Advertencia : la base de datos principal contiene información de todo el servidor y afecta a todas las bases de datos en el servidor. Restaurando la base de datos maestra, puede encontrar identificadores de usuario adicionales y bases de datos que se pierden o tienen permisos incorrectos. Los cambios en el patrón que han ocurrido desde el momento de la copia de seguridad se perderán. Utilice este método sólo si está seguro de que la versión de copia de seguridad de la base de datos principal contiene información precisa para la base de datos de usuario en cuestión y otras bases de datos en el servidor.
  • Administrador (para 6.x) o DTS (para 7.0) de transferencia de uso para copiar los inicios de sesión. Tenga en cuenta que las contraseñas no se ser transferir mediante este método.
  • Póngase en contacto con su proveedor de soporte técnico principal.

Propiedades

Id. de artículo: 168001 - Última revisión: martes, 28 de marzo de 2006 - Versión: 5.3
La información de este artículo se refiere a:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palabras clave: 
kbmt kbprb kbusage KB168001 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 168001

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com