Mengekspor login SQL Server

Dokumen ini menjelaskan cara mengekspor login SQL Server, ID keamanan (SID), dan hash sandi dari instance Cloud SQL untuk SQL Server menggunakan prosedur tersimpan sp_help_revlogin.

Saat memigrasikan database atau menyiapkan sinkronisasi database antara instance SQL Server, Anda harus membuat ulang login pengguna di instance tujuan dengan SID dan hash sandi yang cocok. Tindakan ini memastikan bahwa pengguna database tetap dipetakan ke login server yang sesuai dan mempertahankan izin mereka.

Cloud SQL untuk SQL Server menyediakan prosedur tersimpan sp_help_revlogin di database msdb untuk membuat skrip Transact-SQL (T-SQL) guna membuat ulang login pengguna.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi flag database, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin cloudsql.instances.update yang diperlukan untuk mengonfigurasi flag database.

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Izin database

Pastikan Anda memiliki akses ke peran pengguna SQL Server sqlserver default.

Aktifkan flag database

Untuk menginstal prosedur tersimpan sp_help_revlogin di database msdb, aktifkan flag database cloud sql enable sp_help_revlogin di instance Anda.

KonsolGoogle Cloud

  1. Di Konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka instance Cloud SQL

  2. Klik nama instance untuk membuka halaman Ringkasan.
  3. Klik Edit.
  4. Di bagian Customize your instance, luaskan Flags.
  5. Klik Tambahkan tanda.
  6. Pilih cloud sql enable sp_help_revlogin dari daftar flag yang tersedia.
  7. Tetapkan nilai flag ke on.
  8. Klik Simpan.

gcloud CLI

Aktifkan flag menggunakan gcloud CLI:

gcloud sql instances patch INSTANCE_NAME \
    --database-flags="cloud sql enable sp_help_revlogin=on"

Ganti INSTANCE_NAME dengan nama instance Cloud SQL Anda.

Menghubungkan menggunakan alat klien yang didukung

Prosedur tersimpan sp_help_revlogin menghasilkan skrip CREATE LOGIN yang dibuat menggunakan pernyataan T-SQL PRINT (pesan informasi), bukan set hasil tabular (pernyataan SELECT).

Hubungkan ke instance Cloud SQL Anda menggunakan salah satu alat berikut:

  • SQL Server Management Studio (SSMS): hubungkan ke instance, jalankan prosedur, dan lihat skrip yang dihasilkan di tab Messages. Atau, tekan Control+T untuk mengubah mode output eksekusi ke Hasil ke Teks sebelum menjalankan kueri.
  • Visual Studio Code: hubungkan menggunakan ekstensi MSSQL, jalankan prosedur, dan lihat skrip yang dihasilkan di tab Messages.
  • Utilitas sqlcmd: hubungkan ke instance dan keluarkan skrip yang dihasilkan langsung ke file SQL:

    sqlcmd -S INSTANCE_IP \
        -U USERNAME \
        -P PASSWORD -d msdb \
        -Q "EXEC dbo.sp_help_revlogin" -o output_logins.sql
    

    Ganti kode berikut:

    • INSTANCE_IP: alamat IP instance Cloud SQL Anda.
    • USERNAME: nama pengguna database administratif Anda (seperti sqlserver).
    • PASSWORD: sandi pengguna database Anda.

Mengekspor login menggunakan sp_help_revlogin

Hubungkan ke database msdb dan jalankan prosedur tersimpan sp_help_revlogin.

  • Untuk mengekspor semua login pelanggan:

    EXEC msdb.dbo.sp_help_revlogin;
    
  • Untuk mengekspor login tertentu:

    EXEC msdb.dbo.sp_help_revlogin
        @login_name = 'LOGIN_NAME';
    

    Ganti LOGIN_NAME dengan nama login yang akan diekspor.

Membuat ulang login di instance tujuan

  1. Salin pernyataan CREATE LOGIN yang dihasilkan dari output kueri.
  2. Hubungkan ke instance SQL Server tujuan Anda.
  3. Jalankan pernyataan yang dihasilkan di jendela kueri atau menggunakan sqlcmd.

Pernyataan yang dihasilkan membuat login di instance tujuan dengan SID asli, database default, dan hash sandi. Untuk mengetahui informasi selengkapnya tentang pertimbangan saat mentransfer kredensial login di seluruh instance, lihat dokumentasi Microsoft tentang Mentransfer kredensial login dan sandi antar-instance SQL Server.

Batasan dan login yang dikecualikan

sp_help_revlogin secara otomatis mengecualikan jenis login berikut dari ekspor:

  • Google Cloud akun layanan dan akun pengelolaan internal.
  • Akun sistem SQL Server internal (login yang diawali dengan ##).
  • Login yang ditetapkan ke peran server tetap sysadmin.
  • Login yang ditetapkan ke peran server administratif yang dibatasi.

Menonaktifkan flag database

Jika Anda tidak lagi memerlukan prosedur tersimpan, tetapkan tanda ke off (atau hapus tanda dari instance):

KonsolGoogle Cloud

  1. Di Konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka instance Cloud SQL

  2. Klik nama instance untuk membuka halaman Ringkasan.
  3. Klik Edit.
  4. Di bagian Customize your instance, luaskan Flags.
  5. Temukan cloud sql enable sp_help_revlogin dan tetapkan nilainya ke off (atau klik Hapus untuk menghapus tanda).
  6. Klik Simpan.

gcloud CLI

gcloud sql instances patch INSTANCE_NAME \
    --database-flags="cloud sql enable sp_help_revlogin=off"

Jika disetel ke off atau dihapus, Cloud SQL akan otomatis menghapus dbo.sp_help_revlogin dari database msdb.

Langkah berikutnya