Eseguire la migrazione di account di accesso e gruppi SQL
Per una transizione semplice e sicura dei database di SQL Server ad Azure SQL, è essenziale comprendere e gestire in modo efficace la migrazione delle informazioni di sicurezza.
Decidere quando eseguire la migrazione di account di accesso e gruppi SQL
Si immagini un'organizzazione di grandi dimensioni con un'infrastruttura SQL Server locale sostanziale che serve varie unità aziendali. Ogni unità aziendale dispone di un proprio set di account di accesso SQL, ruoli utente e autorizzazioni personalizzate in base alle proprie esigenze specifiche. L'organizzazione decide di eseguire la migrazione di questi database al database SQL di Azure per usare i vantaggi della scalabilità del cloud.
In questo scenario, la migrazione anticipata degli account di accesso, prima della migrazione del database, potrebbe introdurre complessità non necessarie nella fase di test.
La migrazione degli account di accesso alla fine di un progetto di migrazione del database può facilitare il test, in particolare in scenari complessi. Se gli account di accesso vengono migrati in anticipo, possono verificarsi ritardi nei test dovuti all'evoluzione degli schemi di database. L'attesa di eseguire la migrazione degli account di accesso consente alle configurazioni di sicurezza di allinearsi alla struttura finale, semplificando il processo di migrazione, soprattutto quando la sicurezza dipendente dalla tabella è fondamentale per la protezione dei dati.
| Problemi | Spiegazione |
|---|---|
| Struttura delle autorizzazioni complesse | La migrazione degli account di accesso in un secondo momento consente di adattare le autorizzazioni man mano che la struttura del database si evolve durante la migrazione. |
| Ritardi nei test | La migrazione anticipata degli accessi può rallentare i test, complicando la convalida della sicurezza insieme alle modifiche dello schema. |
| Sicurezza dipendente dalla tabella | La migrazione degli account di accesso può essere ritardata per adattare le configurazioni di sicurezza alle strutture finali del database, se queste cambiano durante la migrazione. |
In questo scenario, tale approccio consente di concentrarsi su come garantire che le misure di sicurezza siano perfettamente allineate alla struttura del database finalizzato, riducendo le potenziali complicazioni e rendendo il progetto di migrazione più gestibile.
Eseguire la migrazione degli account di accesso tramite PowerShell o l'interfaccia della riga di comando di Azure
È possibile usare il Servizio Migrazione del database di Azure con PowerShell (modulo Az.DataMigration) o l'interfaccia della riga di comando di Azure per eseguire la migrazione di account di accesso e ruoli del server dall'istanza locale di SQL Server alla destinazione SQL di Azure. Questo processo di migrazione degli account di accesso automatizza le attività manuali, ad esempio la sincronizzazione degli account di accesso con i mapping utente corrispondenti e la replica delle autorizzazioni del server e dei ruoli del server.
Attualmente la migrazione dell'accesso supporta le destinazioni dell'istanza gestita di SQL di Azure o SQL Server sulle macchine virtuali di Azure.
- Istanza gestita di SQL di Azure - account di Windows e login SQL.
- SQL Server in una macchina virtuale di Azure - solo accessi SQL.
Se non è stata completata la migrazione del database e viene avviato il processo di migrazione degli accessi, la migrazione degli accessi e dei ruoli del server verrà comunque eseguita, ma i mapping di accesso/ruolo non verranno eseguiti correttamente.
L'esempio seguente illustra come eseguire la migrazione degli account di accesso tramite PowerShell:
New-AzDataMigrationLoginsMigration `
-SourceSqlConnectionString "<YourSourceConnectionString>" `
-TargetSqlConnectionString "<YourTargetConnectionString>" `
-ListOfLogin "login1" "login2" `
-AADDomainName "<YourAADDomainName>" # Required for Windows logins
Per usare l'interfaccia della riga di comando di Azure, eseguire il comando az datamigration login-migration:
az datamigration login-migration \
--src-sql-connection-str "<YourSourceConnectionString>" \
--tgt-sql-connection-str "<YourTargetConnectionString>" \
--list-of-login "login1" "login2" \
--aad-domain-name "<YourAADDomainName>"
Per un numero elevato di account di accesso, è possibile usare il --csv-file-path parametro per passare un file CSV contenente l'elenco di account di accesso di cui eseguire la migrazione.
Script MoveLogins
Lo script MoveLogins consente di trasferire informazioni di accesso da SQL Server locali al database SQL di Azure o altre offerte PaaS.
Lo script MoveLogins abilita una ricerca di Active Directory per gli utenti, consentendo di ottenere il User Principal Name (UPN).
Lo script, scritto in PowerShell, genera uno script T-SQL che può essere applicato all'ambiente SQL di destinazione per trasferire account di accesso, utenti del database, ruoli e autorizzazioni. Non esegue i comandi nell'ambiente di destinazione. È necessario esaminare attentamente l'output dello script generato prima di applicarlo all'ambiente di destinazione.
Lo script genera risultati diversi a seconda che si usi il database SQL di Azure o Istanza gestita di SQL di Azure. Nel database SQL di Azure non è possibile creare account di accesso Microsoft Entra e utenti del database correlati; invece, gli utenti di Microsoft Entra vengono creati a livello di database. Per Istanza gestita di SQL di Azure, è simile a SQL Server locale con account di accesso a livello di server e utenti del database.
Note
È consigliabile iniziare con PowerShell o l'interfaccia della riga di comando di Azure per trasferire gli account di accesso. Se si verificano problemi con questi strumenti consigliati, è possibile prendere in considerazione metodi alternativi come l'uso dello script MoveLogins.