Memigrasikan login dan grup SQL
Untuk transisi database SQL Server Anda yang lancar dan aman ke Azure SQL, memahami dan mengelola migrasi informasi keamanan secara efektif sangat penting.
Memutuskan kapan harus memigrasikan login dan grup SQL
Bayangkan organisasi besar dengan infrastruktur SQL Server lokal yang substansial yang melayani berbagai unit bisnis. Setiap unit bisnis memiliki serangkaian login SQL, peran pengguna, dan izinnya sendiri yang disesuaikan dengan kebutuhan spesifik mereka. Organisasi memutuskan untuk memigrasikan database ini ke Azure SQL Database untuk menggunakan manfaat skalabilitas cloud.
Dalam skenario ini, memigrasikan login di muka, sebelum migrasi database, dapat memperkenalkan kompleksitas yang tidak perlu ke fase pengujian.
Memigrasikan login di akhir proyek migrasi database dapat memfasilitasi pengujian, terutama dalam skenario yang kompleks. Jika login dimigrasikan di muka, hal ini dapat menyebabkan keterlambatan pengujian karena skema database yang berkembang. Menunggu untuk memigrasikan login memungkinkan konfigurasi keamanan selaras dengan struktur akhir, menyederhanakan proses migrasi, terutama ketika keamanan yang bergantung pada tabel sangat penting untuk perlindungan data.
| Tantangan | Penjelasan |
|---|---|
| Struktur izin kompleks | Memigrasikan login nanti memungkinkan untuk menyesuaikan izin saat struktur database berkembang selama migrasi. |
| Penundaan pengujian | Memigrasikan login lebih awal dapat memperlambat pengujian, mempersulit validasi keamanan bersama perubahan skema. |
| Keamanan dependen tabel | Menunda migrasi masuk memungkinkan penyesuaian konfigurasi keamanan agar sesuai dengan struktur database akhir jika berubah selama migrasi. |
Dalam skenario kami, pendekatan ini memungkinkan Anda untuk fokus memastikan bahwa langkah-langkah keamanan selaras dengan sempurna dengan struktur database yang diselesaikan, mengurangi potensi komplikasi dan membuat proyek migrasi lebih mudah dikelola.
Memigrasikan login dengan PowerShell atau Azure CLI
Anda dapat menggunakan Azure Database Migration Service dengan PowerShell (modul Az.DataMigration) atau Azure CLI untuk memigrasikan login dan peran server dari SQL Server lokal Anda ke target Azure SQL. Proses migrasi masuk ini mengotomatiskan tugas manual seperti sinkronisasi login dengan pemetaan pengguna yang sesuai dan mereplikasi izin server dan peran server.
Saat ini migrasi masuk mendukung Azure SQL Managed Instance atau SQL Server pada target Azure VM.
- Azure SQL Managed Instance - akun Windows dan login SQL.
- SQL Server di Azure VM - hanya login SQL.
Jika Anda belum menyelesaikan migrasi database dan proses migrasi masuk dimulai, migrasi login dan peran server masih akan terjadi, tetapi pemetaan login/peran tidak akan dilakukan dengan benar.
Contoh berikut menunjukkan cara memigrasikan masuk menggunakan PowerShell:
New-AzDataMigrationLoginsMigration `
-SourceSqlConnectionString "<YourSourceConnectionString>" `
-TargetSqlConnectionString "<YourTargetConnectionString>" `
-ListOfLogin "login1" "login2" `
-AADDomainName "<YourAADDomainName>" # Required for Windows logins
Untuk Azure CLI, gunakan az datamigration login-migration perintah :
az datamigration login-migration \
--src-sql-connection-str "<YourSourceConnectionString>" \
--tgt-sql-connection-str "<YourTargetConnectionString>" \
--list-of-login "login1" "login2" \
--aad-domain-name "<YourAADDomainName>"
Untuk sejumlah besar login, Anda dapat menggunakan --csv-file-path parameter untuk meneruskan file CSV yang berisi daftar login untuk dimigrasikan.
Skrip MoveLogins
Skrip MoveLogins membantu mentransfer informasi masuk dari SQL Server lokal ke Azure SQL Database atau penawaran PaaS lainnya.
Skrip MoveLogins memungkinkan pencarian Direktori Aktif untuk pengguna, memungkinkan Anda untuk mendapatkan Nama Prinsipal Pengguna (UPN) mereka.
Skrip, yang ditulis di PowerShell, menghasilkan skrip T-SQL yang dapat diterapkan ke lingkungan SQL target untuk mentransfer login, pengguna database, peran, dan izin. Ini tidak menjalankan perintah pada lingkungan target. Anda perlu meninjau output skrip yang dihasilkan dengan hati-hati sebelum menerapkannya ke lingkungan target.
Skrip menghasilkan hasil yang berbeda tergantung pada apakah Anda menggunakan Azure SQL Database, atau Azure SQL Managed Instance. Di Azure SQL Database, Anda tidak dapat membuat login Microsoft Entra dan pengguna database terkait; sebagai gantinya, pengguna Microsoft Entra dibuat di tingkat database. Untuk Azure SQL Managed Instance, ini mirip dengan SQL Server lokal dengan login tingkat server dan pengguna database.
Catatan
Sebaiknya mulai dengan PowerShell atau Azure CLI untuk mentransfer login. Jika Anda mengalami masalah dengan alat yang direkomendasikan ini, Anda dapat mempertimbangkan metode alternatif seperti menggunakan skrip MoveLogins.