sp_addlogreader_agent (Transact-SQL)

Aggiunge un agente di lettura log per un database specificato. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.

Nota sulla protezioneNota sulla protezione

 Quando si configura un server di distribuzione remoto per un server di pubblicazione, i valori specificati per tutti i parametri, inclusi job_login e job_password, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per ulteriori informazioni, vedere Crittografia delle connessioni a SQL Server.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @job_login= ] 'job_login'
    Account di accesso per l'account di Microsoft Windows utilizzato per l'esecuzione dell'agente. job_login è di tipo nvarchar(257) e il valore predefinito è NULL. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione.

    [!NOTA]

    Per server di pubblicazione non MicrosoftSQL Server, deve corrispondere all'account di accesso specificato in sp_adddistpublisher (Transact-SQL).

  • [ @job_password= ] 'job_password'
    Password per l'account di Windows utilizzato per l'esecuzione dell'agente. job_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla protezioneNota sulla protezione

    Non archiviare informazioni di autenticazione in file script. Per una protezione ottimale, i nomi e le password degli account di accesso dovrebbero essere passati in fase di esecuzione.

  • [ @job_name= ] 'job_name'
    Nome di un processo esistente dell'agente. job_name è di tipo sysname e il valore predefinito è NULL. Questo parametro viene specificato solo quando l'agente viene avviato con un processo esistente anziché con un nuovo processo creato (impostazione predefinita).

  • [ @publisher_security_mode= ] publisher_security_mode
    Modalità di protezione utilizzata dall'agente per la connessione al server di pubblicazione. publisher_security_mode è di tipo smallint e il valore predefinito è 1. 0 specifica l'autenticazione di SQL Server e 1 l'autenticazione di Windows. Per server di pubblicazione non SQL Server è necessario specificare il valore 0.

  • [ @publisher_login= ] 'publisher_login'
    Account di accesso utilizzato per la connessione al server di pubblicazione. publisher_login è di tipo sysname e il valore predefinito è NULL. È necessario specificare publisher_login se publisher_security_mode è 0. Se publisher_login è NULL e il valore di publisher_security_mode è 1, per la connessione al server di pubblicazione verrà utilizzato l'account di Windows specificato in job_login.

  • [ @publisher_password= ] 'publisher_password'
    Password utilizzata per la connessione al server di pubblicazione. publisher_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla protezioneNota sulla protezione

    Non archiviare informazioni di autenticazione in file script. Per una protezione ottimale, i nomi e le password degli account di accesso dovrebbero essere passati in fase di esecuzione.

  • [ @publisher= ] 'publisher'
    Nome del server di pubblicazione non SQL Server. publisher è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Non specificare questo parametro per un server di pubblicazione SQL Server.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_addlogreader_agent viene utilizzata per la replica transazionale.

Eseguire sp_addlogreader_agent per aggiungere un agente di lettura log se si è aggiornato un database abilitato per la replica a questa versione di SQL Server prima della creazione di una pubblicazione che utilizza tale database.

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_addlogreader_agent.

Esempio

-- 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