Bagikan melalui


sp_addlogreader_agent (T-SQL)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Menambahkan agen Pembaca Log untuk database tertentu. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.

Penting

Saat mengonfigurasi Penerbit dengan Distributor jarak jauh, nilai yang disediakan untuk semua parameter, termasuk @job_login dan @job_password, dikirim ke Distributor sebagai teks biasa. Anda harus mengenkripsi koneksi antara Publisher dan Distributor jarak jauhnya sebelum menjalankan prosedur tersimpan ini. Untuk informasi selengkapnya, lihat Mengonfigurasi Mesin Database SQL Server untuk mengenkripsi koneksi.

Konvensi sintaks transact-SQL

Sintaks

sp_addlogreader_agent
    [ [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @publisher = ] N'publisher' ]
[ ; ]

Argumen

[ @job_login = ] N'job_login'

Masuk untuk akun Microsoft Windows tempat agen berjalan. @job_login adalah nvarchar(257), dengan default NULL. Akun Windows ini selalu digunakan untuk koneksi agen ke Distributor. Di Azure SQL Managed Instance, gunakan akun SQL Server.

Catatan

Untuk Penerbit non-SQL Server, ini harus merupakan login yang sama yang ditentukan dalam sp_adddistpublisher (Transact-SQL).

[ @job_password = ] N'job_password'

Kata sandi untuk akun Windows tempat agen berjalan. @job_password adalah sysname, dengan default NULL.

Penting

Jangan simpan informasi autentikasi dalam file skrip. Untuk keamanan terbaik, nama login dan kata sandi harus disediakan saat runtime.

[ @job_name = ] N'job_name'

Nama pekerjaan agen yang ada. @job_name adalah sysname, dengan default NULL. Parameter ini hanya ditentukan ketika agen mulai menggunakan pekerjaan yang ada alih-alih pekerjaan yang baru dibuat (default).

[ @publisher_security_mode = ] publisher_security_mode

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Mode keamanan yang digunakan oleh agen saat menyambungkan ke Publisher. @publisher_security_mode kecil, dengan default 1. Nilai 0 harus ditentukan untuk Penerbit non-SQL Server. Nilai berikut menentukan mode keamanan:

  • 0 menentukan autentikasi SQL Server.
  • 1 menentukan autentikasi Windows.
  • 2 menentukan autentikasi kata sandi Microsoft Entra yang dimulai dengan SQL Server 2022 (16.x) CU 6.
  • 3 menentukan autentikasi terintegrasi Microsoft Entra yang dimulai dengan SQL Server 2022 (16.x) CU 6.
  • 4 menentukan autentikasi token Microsoft Entra yang dimulai dengan SQL Server 2022 (16.x) CU 6.

[ @publisher_login = ] N'publisher_login'

Login yang digunakan saat menyambungkan ke Publisher. @publisher_login adalah sysname, dengan default NULL. @publisher_login harus ditentukan ketika @publisher_security_mode adalah 0. Jika @publisher_login adalah NULL dan @publisher_security_mode adalah 1, maka akun Windows yang ditentukan dalam @job_login digunakan saat menyambungkan ke Publisher.

[ @publisher_password = ] N'publisher_password'

Kata sandi yang digunakan saat menyambungkan ke Publisher. @publisher_password adalah sysname, dengan default NULL.

Penting

Jangan simpan informasi autentikasi dalam file skrip. Untuk keamanan terbaik, nama login dan kata sandi harus disediakan saat runtime.

[ @publisher = ] N'publisher'

Nama Penerbit non-SQL Server. @publisher adalah sysname, dengan default NULL.

Catatan

Anda tidak boleh menentukan parameter ini untuk Penerbit SQL Server.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

sp_addlogreader_agent digunakan dalam replikasi transaksional.

Anda harus menjalankan sp_addlogreader_agent untuk menambahkan agen Pembaca Log jika Anda memutakhirkan database yang diaktifkan untuk replikasi ke versi SQL Server ini sebelum publikasi dibuat yang menggunakan database.

Izin

Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_addlogreader_agent.

Contoh

-- To avoid storing the login and password in the script file, the values 
-- are passed into SQLCMD as scripting variables. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks'; 
SET @publication = N'AdvWorksProductTran'; 
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- This should be passed at runtime.
SET @password = $(Password); 

-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Create a new transactional publication with the required properties. 
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_push = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;
GO