Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verschieben/kopieren Sie alle Datenbanken mit Benutzern, Schema und Rollen von einem Server auf einen anderen

  1. Rechtsklick auf die DB
  2. Auf Aufgaben klicken
  3. Klicken Sie auf Skripte erstellen
  4. Gehen Sie durch den Assistenten und wählen Sie Ihre Tabellen aus
  5. Klicken Sie auf der Optionsseite auf die Schaltfläche "Erweitert" (sie ist da, fällt nur nicht besonders gut auf)
  6. Ändern Sie die Option „Datentypen in Skript“

Es gibt Optionen zum Skripten von Daten und Anmeldungen (eine Menge anderer Dinge). Es ist sehr praktisch.

Hier ist das Skript, das ein Skript generiert, um alle Rollen zu allen Datenbanken hinzuzufügen

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;