usuarios usuario tipos rol privilegios permisos listar db_owner datos asignar tsql login user sql-server-2000 roles

tsql - usuario - roles en base de datos mysql



Inicios de sesión de transferencia de SQL Server 2000 y roles de servidor asociados y acceso a bases de datos específicas (4)

Pensé que podría cerrar el servidor y luego copiar todos los archivos relacionados con la base de datos al nuevo servidor y reiniciar el nuevo sqlserver allí haciendo que use estos archivos copiados. No puedo encontrar mucho más además de esto, aunque http://www.sqlservercentral.com/Forums/FindPost959329.aspx

Este enlace le brinda la opinión de soporte sobre qué hacer http://support.microsoft.com/kb/314546

Teniendo en cuenta la ruta VHD, ¿también probó un producto competidor? Puede probar VMWare, he escuchado cosas muy buenas al respecto y podría tener éxito donde otros fallaron. http://www.vmware.com/nl/products/datacenter-virtualization/vsphere-hypervisor/overview.html

Trabajo para una empresa relativamente pequeña de menos de 50 personas y probablemente sea lo más parecido a un DBA ... En realidad, soy programador, pero eso no viene al caso. Tenemos un SQL Server 2000 con aproximadamente 100 bases de datos diferentes . Casi todos ellos tienen un inicio de sesión SQL asociado y ese inicio de sesión está vinculado a una DB_OWNER base de datos DB_OWNER para una base de datos en particular. También tenemos algunos inicios de sesión que se establecen en la DB_DATAREADER base de datos DB_DATAREADER .

Hemos comprado una máquina nueva (la actual tiene 12 años de antigüedad y nos preocupa una falla de hardware que puede demorar nuestro negocio por un tiempo inaceptable). NO estamos actualizando la versión de SQL Server. Vamos a seguir con 2000.

Mi pregunta es ¿cuál es la forma más fácil de hacer esto? Mi idea es separar todas las bases de datos, copiarlas a la nueva máquina y luego volver a conectar cada una de las bases de datos. Voy a mantener igual el nombre de la máquina y las direcciones IP y simplemente eliminar el servidor anterior cuando haya terminado, por lo que no se deben modificar las cadenas de conexión en ninguna parte. Eso no parece tan malo y puede hacerse fácilmente en un fin de semana. Mi problema con este método es que después de hacerlo necesito eliminar el usuario de la base de datos, luego recrear el login con nombre de usuario / contraseña, y luego asignar el rol apropiado para cada usuario. Solo llevo aquí 5 años y no tengo todos los nombres de usuario / contraseñas posibles que usa cada base de datos y programa en particular. No quiero romper ningún programa existente o tengo que ir a cada máquina y actualizar esto ... o incluso tener que buscar un código fuente viejo y volver a compilar ... sí, algunas de nuestras cosas heredadas tienen el nombre de usuario / contraseña codificados en la fuente :(.

Así que supongo que la pregunta principal es: ¿es una script que puedo ejecutar en el servidor existente que generará una secuencia de comandos para ejecutar en la máquina nueva para configurar los logins , users y roles con el mismo nombre de usuario / contraseña que antes?

Si hay una manera más fácil de transferir una instancia de servidor sql de una máquina a otra; Soy todo oídos.

FYI hemos intentado crear un VHD a partir del servidor existente para utilizarlo en una máquina virtual, pero hemos agotado esa ruta. Nunca pudimos hacer que la máquina arrancara en Windows. Creo que eso fue problemas con los conductores.


Creo que la forma más simple debe ser después de haber instalado el nuevo servidor (yo diría que reconsiderar la actualización a sql2008 o superior por una gran cantidad de razones).

Y luego use el asistente de copia de la base de datos. Siga los pasos descritos en

http://msdn.microsoft.com/en-us/library/ms188664.aspx

saludos, jaco


Ha pasado mucho, mucho tiempo desde que pirateé SQL 2000 ... pero fue pirateable, de maneras que no se aplican a 2005 y posteriores. Las siguientes son ideas y sugerencias basadas en viejos recuerdos de "qué pasa si hacemos esto ..."; No puedo darle comandos o ejemplos específicos, porque no tengo acceso a ninguna instancia de SQL 2000 en este momento.

  • Cree una copia de seguridad de la base de datos maestra "Nueva".
  • Dos instancias de SQL 2000 en dos cuadros diferentes. Llámalos "viejo" y "nuevo".
  • Cerrar viejo
  • Copie los archivos maestros de la base de datos (master.mdf, master.log, o lo que sea que se denominen) al nuevo servidor
  • Asegúrese de tener una copia de seguridad de la base de datos maestra "Nueva".
  • Adjúntelos a la nueva instancia como una base de datos de usuario. Cambie el nombre de los archivos, tal vez "OldMaster".
  • Ubique las bases de datos del sistema apropiadas en ambas bases de datos maestras. SysLogins? SysLoginX? Los libros en línea ayudarán aquí (estas tablas del sistema se han revisado por completo desde 2000).
  • INSERTAR ... SELECCIONAR ... de una base de datos a otra. Estoy bastante seguro de haber hecho esto alguna vez. (Justo antes de que dejáramos caer la cuenta SA, solo para ver si podíamos). (Ah, no deje caer la cuenta SA).
  • Creo que hay un cambio sp_options que debes voltear, para permitir actualizaciones manuales de las bases de datos del sistema.
  • Hiciste esa copia de seguridad de la base de datos maestra "Nueva", ¿verdad? (En realidad, cerrar la instancia, copiar los archivos maestros de la base de datos y volverlos a poner en funcionamiento funcionó bien también; simplemente apague, copie las copias de nuevo sobre sus archivos dañados y vuelva a iniciar, y estará donde está. fueron - siempre y cuando no te hayas equivocado con ninguna otra base de datos).

sp_change_users_login (utilizando "informe" y luego "autofix") debería resultar invaluable en este caso: se puede usar para sincronizar inicios de sesión (definiciones en la base de datos maestra) con usuarios (definiciones almacenadas en las bases de datos). Una vez más, no es aplicable donde estoy ahora, pero era hora de que tuviera que usar este procedimiento cada vez que movíamos una base de datos de una caja a otra. Huh. Había alguna manera de escribir un inicio de sesión con contraseña encriptada, y ejecutar ese "crear inicio de sesión" en otro cuadro, pero no recuerdo cuál era. Consulte la documentación de sp_CreateLogin, o lo que sea que se usó para crear un inicio de sesión de SQL en 2000.

La mayoría de todo lo que he averiguado proviene de leer libros en línea y luego de perder el tiempo. No sé si tienes tiempo, pero si tienes el requisito, eventualmente se lo puede hacer funcionar.


A menos que esté ejecutando la versión de 64 bits del servidor SQL en la máquina de destino, el enlace proporcionado en el primer comentario debería permitirle transferir los inicios de sesión con éxito.

La sección titulada "Una resolución completa para transferir inicios de sesión y contraseñas entre las diferentes versiones de SQL Server" en ese enlace le proporciona un procedimiento paso a paso para lograr su objetivo.

Aunque hacer esto es ciertamente muy arriesgado, siempre puedes crear una imagen de la unidad del servidor existente usando alguna herramienta como Norton Ghost y restaurar esa imagen en el nuevo hardware.

Lo he hecho al migrar a un disco de estado sólido desde un disco tradicional y funcionó bien, aunque tardó mucho tiempo (varias horas). Por supuesto, este enfoque no funcionará si está cambiando el sistema operativo y es posible que no funcione correctamente debido a diferencias de hardware y controladores.

Sin duda sería mucho más trabajo, pero este tipo de actualizaciones le dan la oportunidad de corregir algunos de los problemas que le dificultan migrar el servidor de db a una nueva instalación (por ejemplo, credenciales codificadas, etc.) . Si tiene la capacidad, el tiempo y el deseo de corregir estos problemas, puede valer la pena hacerlo.