Dokumen ini menjelaskan cara mengekspor login, ID keamanan (SID), dan hash sandi SQL Server dari instance Cloud SQL untuk SQL Server menggunakan prosedur tersimpan sp_help_revlogin.
Saat Anda memigrasikan database, menyiapkan sinkronisasi database, atau mengelola replika baca dan replika disaster recovery (DR), Anda harus membuat ulang login pengguna di instance tujuan dengan SID dan hash sandi yang cocok. Hal ini membantu 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 dalam 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:
- Cloud SQL Admin (
roles/cloudsql.admin) - Cloud SQL Editor (
roles/cloudsql.editor)
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 basis data
Pastikan Anda memiliki akses ke peran pengguna SQL Server sqlserver default.
Mengaktifkan 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
- Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Klik nama instance untuk membuka halaman Ringkasan.
- Klik Edit.
- Di bagian Customize your instance, luaskan Flags.
- Klik Add flag.
- Pilih cloud sql enable sp_help_revlogin dari daftar flag yang tersedia.
- Tetapkan nilai flag ke on.
- 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 dihasilkan menggunakan pernyataan PRINT T-SQL (pesan informasi), bukan set hasil tabulasi (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 mengalihkan mode output eksekusi ke Results to Text 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 output 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.sqlGanti kode berikut:
INSTANCE_IP: alamat IP instance Cloud SQL Anda.USERNAME: nama pengguna database administratif Anda (sepertisqlserver).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_NAMEdengan nama login yang akan diekspor.
Membuat ulang login di instance tujuan
- Salin pernyataan
CREATE LOGINyang dihasilkan dari output kueri. - Hubungkan ke instance SQL Server tujuan Anda.
- Jalankan pernyataan yang dihasilkan di jendela kueri atau menggunakan
sqlcmd.
Pernyataan yang dihasilkan akan membuat login pada instance tujuan dengan SID asli, database default, dan hash sandi. Untuk mengetahui informasi selengkapnya tentang pertimbangan saat mentransfer login di seluruh instance, lihat dokumentasi Microsoft tentang Mentransfer login dan sandi antar-instance SQL Server.
Menyinkronkan login dengan replika baca
Saat Cloud SQL membuat replika baca atau replika disaster recovery (DR), Cloud SQL akan menyalin login yang ada dari instance utama. Namun, login yang dibuat di instance utama setelah pembuatan replika tidak direplikasi secara otomatis.
Meskipun database pengguna pada replika baca bersifat hanya baca, Anda dapat terhubung ke replika baca dan menjalankan pernyataan CREATE LOGIN yang dihasilkan oleh sp_help_revlogin di database master replika.
Sebaiknya ekspor login baru secara rutin dari instance utama dan buat ulang di replika baca dan replika DR. Sinkronisasi rutin memastikan bahwa pengguna dapat melakukan autentikasi ke replika baca dan aplikasi dapat segera terhubung kembali setelah pengalihan, failover replika, atau promosi replika.
Batasan dan login yang dikecualikan
sp_help_revlogin otomatis mengecualikan jenis login berikut
dari ekspor:
- Google Cloud akun layanan dan akun pengelolaan internal.
- Akun sistem SQL Server internal (login dengan awalan
##). - 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 flag ke off (atau hapus flag dari instance):
KonsolGoogle Cloud
- Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Klik nama instance untuk membuka halaman Ringkasan.
- Klik Edit.
- Di bagian Customize your instance, luaskan Flags.
- Temukan cloud sql enable sp_help_revlogin dan tetapkan nilainya ke off (atau klik Delete untuk menghapus flag).
- Klik Simpan.
gcloud CLI
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=off"
Jika ditetapkan ke off atau dihapus, Cloud SQL akan otomatis menghapus
dbo.sp_help_revlogin dari database msdb.
Langkah berikutnya
- Untuk mengetahui informasi selengkapnya tentang pengguna SQL Server, lihat pengguna SQL Server.
- Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi flag database, lihat Mengonfigurasi flag database.
- Untuk mengetahui informasi selengkapnya tentang prosedur tersimpan yang didukung, lihat Prosedur tersimpan SQL Server.
- Untuk mengetahui informasi selengkapnya tentang cara mentransfer login dan sandi, lihat Mentransfer login dan sandi antar-instance SQL Server.