sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo mover/copiar todas las bases de datos con usuarios, esquemas y roles de un servidor a otro

  1. Haga clic con el botón derecho en la base de datos
  2. Haga clic en las tareas
  3. Haga clic en generar scripts
  4. Pase por el asistente y seleccione sus mesas
  5. En la página de opciones, haga clic en el botón Avanzado (está ahí, pero no se destaca muy bien)
  6. Cambiar la opción "Tipos de datos a script"

Hay opciones para escribir datos e inicios de sesión (un montón de otras cosas). Es muy útil.

Aquí está el script que generará un script para agregar todos los roles en todas las bases de datos

declare @selectStatement varchar(1000)

set @selectStatement = 'Use ?;SELECT ''USE ?''; SELECT ' + '''EXECUTE sp_AddRoleMember ''''' + ''' + roles.name + '''''''+','''''+''' +  Replace(users.name,''DOMAINA'',''DOMAINB'') + ''' + '''''''
     from sys.database_principals users
    inner join sys.database_role_members link
    on link.member_principal_id = users.principal_id
   inner join sys.database_principals roles
     on roles.principal_id = link.role_principal_id'

                            --where users.name like ''%%'''

                EXEC sp_MSForEachDB @selectStatement;