Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyelaraskan pengguna dan objek basis data dengan replika baca SQL Server
Setiap login, peran server kustom, pekerjaan agen SQL, atau objek tingkat server lainnya yang ada di instans DB utama pada saat membuat replika baca diharapkan hadir dalam replika baca yang baru dibuat. Namun, objek tingkat server apa pun yang dibuat dalam instans DB utama setelah pembuatan replika baca tidak akan direplikasi secara otomatis, dan Anda harus membuatnya secara manual di replika baca.
Pengguna basis data secara otomatis direplikasi dari instans DB primer ke replika baca. Karena basis data replika baca dalam mode hanya-baca, pengidentifikasi keamanan (SID) dari pengguna basis data tidak dapat diperbarui dalam basis data. Oleh karena itu, saat membuat login SQL di replika baca, penting untuk memastikan bahwa SID dari login itu cocok dengan SID dari login SQL yang sesuai di instans DB utama. Jika Anda tidak SIDs menyinkronkan login SQL, mereka tidak akan dapat mengakses database dalam replika baca. Windows Active Directory (AD) Authenticated Login tidak mengalami masalah ini karena SQL Server memperoleh SID dari Active Directory.
Untuk menyinkronkan login SQL dari instans DB primer ke replika baca
-
Hubungkan ke instans DB utama.
-
Buat login SQL baru di instans DB primer.
USE [master] GO CREATE LOGINTestLogin1WITH PASSWORD = 'REPLACE WITH PASSWORD';catatan
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.
-
Buat pengguna basis data baru untuk login SQL di basis data.
USE [REPLACE WITH YOUR DB NAME] GO CREATE USERTestLogin1FOR LOGINTestLogin1; GO -
Periksa SID dari login SQL yang baru dibuat di instans DB primer.
SELECT name, sid FROM sys.server_principals WHERE name = 'TestLogin1'; -
Hubungkan ke replika baca. Buat login SQL baru.
CREATE LOGINTestLogin1WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #4;
Sebagai alternatif, jika Anda memiliki akses ke basis data replika baca, Anda dapat memperbaiki pengguna yatim piatu sebagai berikut:
-
Hubungkan ke replika baca.
-
Identifikasi pengguna yatim piatu dalam basis data.
USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO -
Buat login SQL baru untuk pengguna basis data yatim piatu.
CREATE LOGINTestLogin1WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #2;Contoh:
CREATE LOGINTestLogin1WITH PASSWORD = 'TestPa$$word#1', SID=0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P;catatan
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.