Model Keamanan Agen Replikasi

Berlaku untuk:SQL Server

Model keamanan agen replikasi memungkinkan kontrol halus atas akun tempat agen replikasi berjalan dan membuat koneksi: Akun yang berbeda dapat ditentukan untuk setiap agen. Untuk informasi selengkapnya tentang cara menentukan akun, lihat Identitas dan kontrol akses untuk replikasi.

Model keamanan agen replikasi sedikit berbeda untuk Azure SQL Managed Instance, karena tidak ada akun Windows di mana agen akan berjalan. Sebagai gantinya, semuanya harus dilakukan melalui autentikasi SQL Server.

Penting

Ketika anggota peran server tetap sysadmin mengonfigurasi replikasi, agen replikasi dapat dikonfigurasi untuk meniru akun SQL Server Agent. Ini dilakukan dengan tidak menentukan login dan kata sandi untuk agen replikasi; namun, kami tidak merekomendasikan pendekatan ini. Sebagai gantinya, sebagai praktik terbaik keamanan, kami sarankan Anda menentukan akun untuk setiap agen yang memiliki izin minimum yang dijelaskan di bagian "Izin yang Diperlukan oleh Agen" nanti dalam topik ini.

Agen replikasi, seperti semua executable, berjalan di bawah konteks akun Windows. Agen membuat koneksi Keamanan Terintegrasi Windows dengan menggunakan akun ini. Akun tempat agen berjalan tergantung pada bagaimana agen dimulai:

  • Memulai agen dari pekerjaan SQL Server Agent, defaultnya: Saat pekerjaan SQL Server Agent digunakan untuk memulai agen replikasi, agen berjalan di bawah konteks akun yang Anda tentukan saat Mengonfigurasi replikasi. Untuk informasi selengkapnya tentang SQL Server Agent dan replikasi, lihat bagian "Keamanan Agen di bawah SQL Server Agent" nanti dalam topik ini. Untuk informasi tentang izin yang diperlukan untuk akun tempat Agen SQL Server berjalan, lihat Mengonfigurasi SQL Server Agent.

  • Memulai agen dari baris perintah MS-DOS, baik secara langsung atau melalui skrip: Agen berjalan di bawah konteks akun pengguna yang menjalankan agen di baris perintah.

  • Memulai agen dari aplikasi yang menggunakan Objek Manajemen Replikasi (RMO) atau kontrol ActiveX: Agen berjalan di bawah konteks aplikasi yang memanggil RMO atau kontrol ActiveX.

    Catatan

    Kontrol ActiveX tidak digunakan lagi.

Kami menyarankan agar koneksi dibuat di bawah konteks Windows Integrated Security. Untuk kompatibilitas mundur, Keamanan SQL Server juga dapat digunakan. Untuk informasi selengkapnya tentang praktik terbaik, lihat Praktik Terbaik Keamanan Replikasi.

Izin yang Diperlukan oleh Agen

Akun tempat agen menjalankan dan membuat koneksi memerlukan berbagai izin. Izin ini dijelaskan dalam tabel berikut. Kami menyarankan agar setiap agen berjalan di bawah akun Windows yang berbeda dan akun harus diberikan hanya izin yang diperlukan. Untuk informasi tentang daftar akses publikasi (PAL), yang relevan untuk sejumlah agen, lihat Mengamankan Penerbit.

Catatan

Kontrol Akun Pengguna (UAC) di beberapa sistem operasi Windows dapat mencegah akses administratif ke berbagi rekam jepret. Oleh karena itu, Anda harus secara eksplisit memberikan izin berbagi rekam jepret ke akun Windows yang digunakan oleh Agen Rekam Jepret, Agen Distribusi, dan Agen Penggabungan. Anda harus melakukan ini meskipun akun Windows adalah anggota grup Administrator. Untuk informasi selengkapnya, lihat Mengamankan Folder Rekam Jepret.

Agen Izin
Agen Snapshot Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Distributor. Akun ini harus:

-Minimal, jadilah anggota peran database tetap db_owner dalam database distribusi.

-Telah membaca, menulis, dan mengubah izin pada berbagi rekam jepret.



Perhatikan bahwa akun yang digunakan untuk menyambungkan ke Publisher harus minimal menjadi anggota peran database tetap db_owner dalam database publikasi.
Agen Pembaca Log Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Distributor. Akun ini harus minimal menjadi anggota peran database tetap db_owner dalam database distribusi.

Akun yang digunakan untuk menyambungkan ke Penerbit harus minimal menjadi anggota peran database tetap db_owner dalam database publikasi.

Saat memilih dukungan replikasi opsi sync_type saja, menginisialisasi dengan cadangan, atau menginisialisasi dari lsn, agen pembaca log harus berjalan setelah menjalankan sp_addsubscription, sehingga skrip penyiapan ditulis ke database distribusi. Agen pembaca log harus berjalan di bawah akun yang merupakan anggota peran server tetap sysadmin . Saat opsi sync_type diatur ke Otomatis, tidak ada tindakan agen pembaca log khusus yang diperlukan.
Agen Distribusi untuk langganan push Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Distributor. Akun ini harus:

-Minimal menjadi anggota peran database tetap db_owner dalam database distribusi.

-Jadilah anggota PAL.

-Memiliki izin baca pada berbagi rekam jepret.

-Memiliki izin baca pada direktori penginstalan penyedia OLE DB untuk Pelanggan jika langganan adalah untuk Pelanggan non-SQL Server.

-Saat mereplikasi data LOB, agen distribusi harus memiliki izin tulis pada replikasi C:\Program Files\Microsoft SQL Server\XX\COMfolder di mana XX mewakili instanceID.



Perhatikan bahwa akun yang digunakan untuk menyambungkan ke Pelanggan harus minimal menjadi anggota peran database tetap db_owner dalam database langganan, atau memiliki izin yang setara jika langganan adalah untuk Pelanggan non-SQL Server.

Perhatikan juga bahwa saat menggunakan -subscriptionstreams >= 2 pada agen distribusi, Anda juga harus memberikan izin Tampilkan Status Server pada pelanggan untuk mendeteksi kebuntuan.
Agen Distribusi untuk langganan penarikan Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Pelanggan. Akun ini harus minimal menjadi anggota peran database tetap db_owner dalam database langganan. Akun yang digunakan untuk menyambungkan ke Distributor harus:

-Jadilah anggota PAL.

-Memiliki izin baca pada berbagi rekam jepret.

-Saat mereplikasi data LOB, agen distribusi harus memiliki izin tulis pada replikasi C:\Program Files\Microsoft SQL Server\XX\COMfolder di mana XX mewakili instanceID.



Perhatikan bahwa saat menggunakan -subscriptionstreams >= 2 pada agen distribusi, Anda juga harus memberikan izin Tampilkan Status Server pada pelanggan untuk mendeteksi kebuntuan.
Gabungkan Agen untuk langganan push Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Penerbit dan Distributor. Akun ini harus:

-Minimal menjadi anggota peran database tetap db_owner dalam database distribusi.

-Jadilah anggota PAL.

-Jadilah login yang terkait dengan pengguna dengan izin baca/tulis dalam database publikasi.

-Memiliki izin baca pada berbagi rekam jepret.



Perhatikan bahwa akun yang digunakan untuk menyambungkan ke Pelanggan harus minimal menjadi anggota peran database tetap db_owner dalam database langganan.
Gabungkan Agen untuk langganan penarikan Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Pelanggan. Akun ini harus minimal menjadi anggota peran database tetap db_owner dalam database langganan. Akun yang digunakan untuk menyambungkan ke Penerbit dan Distributor harus:

-Jadilah anggota PAL.

-Jadilah login yang terkait dengan pengguna dengan izin baca/tulis dalam database publikasi.

-Jadilah login yang terkait dengan pengguna dalam database distribusi. Pengguna dapat menjadi pengguna Tamu .

-Memiliki izin baca pada berbagi rekam jepret.
Agen Pembaca Antrean Akun Windows tempat agen berjalan digunakan ketika membuat koneksi ke Distributor. Akun ini harus minimal menjadi anggota peran database tetap db_owner dalam database distribusi.

Akun yang digunakan untuk menyambungkan ke Penerbit harus minimal menjadi anggota peran database tetap db_owner dalam database publikasi.

Akun yang digunakan untuk menyambungkan ke Pelanggan harus minimal menjadi anggota peran database tetap db_owner dalam database langganan.

Keamanan Agen di bawah SQL Server Agent

Saat Anda mengonfigurasi replikasi dengan menggunakan SQL Server Management Studio, prosedur Transact-SQL, atau RMO, pekerjaan SQL Server Agent dibuat secara default untuk setiap agen. Agen kemudian berjalan di bawah konteks langkah pekerjaan, terlepas dari apakah mereka berjalan terus menerus, sesuai jadwal, atau sesuai permintaan. Anda dapat melihat pekerjaan ini di bawah folder Pekerjaan di SQL Server Management Studio. Tabel berikut mencantumkan nama pekerjaan.

Agen Nama pekerjaan
Agen Snapshot <Publisher-PublicationDatabase-Publication-integer><><><>
Agen Rekam Jepret untuk partisi publikasi gabungan <Dyn_Publisher-PublicationDatabase-Publication-GUID>><><<>
Agen Pembaca Log <Publisher-PublicationDatabase-integer><><>
Gabungkan Agen untuk langganan penarikan <Publisher-PublicationDatabase-Publication-Subscriber-SubscriptionDatabase-integer><><><><><>
Gabungkan Agen untuk langganan push <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><>
Agen Distribusi untuk langganan push <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><>
Agen Distribusi untuk langganan penarikan <Publisher-PublicationDatabase-Publication-Subscriber-SubscriptionDatabase-GUID><><><><><>
Agen Distribusi untuk mendorong langganan ke Pelanggan non-SQL Server <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><>
Agen Pembaca Antrean [<Distributor>].<Integer>

*Untuk langganan push ke publikasi Oracle, nama pekerjaannya adalah Publisher-Publisher<>>, bukan <Publisher-PublicationDatabase>><.<

**Untuk menarik langganan ke publikasi Oracle, nama pekerjaannya adalah Publisher-DistributionDatabase><>, bukan <Publisher-PublicationDatabase.><><

Saat mengonfigurasi replikasi, Anda menentukan akun di mana agen harus berjalan. Namun, semua langkah pekerjaan berjalan di bawah konteks keamanan proksi; oleh karena itu, replikasi melakukan pemetaan berikut secara internal untuk akun agen yang Anda tentukan:

  • Akun pertama kali dipetakan ke kredensial dengan menggunakan pernyataan TRANSACT-SQL CREATE CREDENTIAL . Proksi SQL Server Agent menggunakan kredensial untuk menyimpan informasi tentang akun pengguna Windows.

  • Prosedur tersimpan sp_add_proxy dipanggil, dan kredensial digunakan untuk membuat proksi.

Catatan

Informasi ini disediakan untuk membantu Anda memahami apa yang terlibat dalam menjalankan agen dengan konteks keamanan yang sesuai. Anda tidak boleh berinteraksi langsung dengan kredensial atau proksi yang telah dibuat.

Lihat Juga

Praktik Terbaik Keamanan Replikasi
Menampilkan dan mengubah pengaturan keamanan replikasi
Mengamankan Folder Rekam Jepret