Menyelaraskan pengguna dan objek basis data dengan replika baca SQL Server - Layanan Basis Data Relasional Amazon

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
  1. Hubungkan ke instans DB utama.

  2. Buat login SQL baru di instans DB primer.

    USE [master] GO CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD';
    catatan

    Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

  3. Buat pengguna basis data baru untuk login SQL di basis data.

    USE [REPLACE WITH YOUR DB NAME] GO CREATE USER TestLogin1 FOR LOGIN TestLogin1; GO
  4. Periksa SID dari login SQL yang baru dibuat di instans DB primer.

    SELECT name, sid FROM sys.server_principals WHERE name = 'TestLogin1';
  5. Hubungkan ke replika baca. Buat login SQL baru.

    CREATE LOGIN TestLogin1 WITH 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:
  1. Hubungkan ke replika baca.

  2. Identifikasi pengguna yatim piatu dalam basis data.

    USE [REPLACE WITH YOUR DB NAME] GO EXEC sp_change_users_login 'Report'; GO
  3. Buat login SQL baru untuk pengguna basis data yatim piatu.

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'REPLACE WITH PASSWORD', SID=REPLACE WITH sid FROM STEP #2;

    Contoh:

    CREATE LOGIN TestLogin1 WITH PASSWORD = 'TestPa$$word#1', SID=0x1A2B3C4D5E6F7G8H9I0J1K2L3M4N5O6P;
    catatan

    Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.