sp_addlogreader_agent (Transact-SQL)

Fügt einen Protokolllese-Agent für eine bestimmte Datenbank hinzu. Diese gespeicherte Prozedur wird beim Verleger mit der Veröffentlichungsdatenbank ausgeführt.

SicherheitshinweisSicherheitshinweis

Bei der Konfiguration eines Verlegers mit einem Remoteverteiler werden die Werte, die für alle Parameter einschließlich job_login und job_password bereitgestellt werden, als Nur-Text an den Verteiler gesendet. Sie sollten die Verbindung zwischen dem Verleger und seinem Remoteverteiler vor dem Ausführen dieser gespeicherten Prozedur verschlüsseln. Weitere Informationen finden Sie unter Verschlüsseln von Verbindungen zu SQL Server.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

  • [ @job_login= ] 'job_login'
    Der Anmeldename für das Microsoft Windows-Konto, unter dem der Agent ausgeführt wird. job_login ist vom Datentyp nvarchar(257) und hat den Standardwert NULL. Das Windows-Konto wird stets für Agent-Verbindungen mit dem Verteiler verwendet.

    HinweisHinweis

    Bei Nicht-Microsoft SQL Server-Verlegern muss es sich dabei um den Anmeldenamen handeln, der in sp_adddistpublisher (Transact-SQL) festgelegt ist.

  • [ @job_password= ] 'job_password'
    Das Kennwort für das Windows-Konto, unter dem der Agent ausgeführt wird. job_password ist vom Datentyp sysname und hat den Standardwert NULL.

    SicherheitshinweisSicherheitshinweis

    Speichern Sie keine Authentifizierungsinformationen in Skriptdateien. Anmeldenamen und Kennwörter sollten stets zur Laufzeit bereitgestellt werden, um einen höchstmöglichen Grad an Sicherheit zu bieten.

  • [ @job_name= ] 'job_name'
    Der Name eines vorhandenen Agentauftrags. job_name ist vom Datentyp sysname und hat den Standardwert NULL. Dieser Parameter wird nur dann angegeben, wenn der Agent mit einem vorhandenen Auftrag anstatt mit einem neu erstellten Auftrag (Standard) gestartet wird.

  • [ @publisher_security_mode= ] publisher_security_mode
    Der vom Agent beim Herstellen der Verbindung mit dem Verleger verwendete Sicherheitsmodus. publisher_security_mode ist vom Datentyp smallint und hat den Standardwert 1. 0 legt die SQL Server-Authentifizierung fest und 1 die Windows-Authentifizierung. Für Nicht-SQL Server-Verleger muss ein Wert von 0 angegeben werden.

  • [ @publisher_login= ] 'publisher_login'
    Der zum Herstellen der Verbindung mit dem Verleger verwendete Anmeldename. publisher_login ist vom Datentyp sysname und hat den Standardwert NULL. publisher_login muss angegeben werden, wenn publisher_security_mode den Wert 0 hat. Wenn publisher_login den Wert NULL und publisher_security_mode den Wert 1 aufweist, wird das in job_login angegebene Windows-Konto für die Verbindung mit dem Verleger verwendet.

  • [ @publisher_password= ] 'publisher_password'
    Das zum Herstellen der Verbindung mit dem Verleger verwendete Kennwort. publisher_password ist vom Datentyp sysname und hat den Standardwert NULL.

    SicherheitshinweisSicherheitshinweis

    Speichern Sie keine Authentifizierungsinformationen in Skriptdateien. Anmeldenamen und Kennwörter sollten stets zur Laufzeit bereitgestellt werden, um einen höchstmöglichen Grad an Sicherheit zu bieten.

  • [ @publisher= ] 'publisher'
    Der Name des Nicht-SQL Server-Verlegers. publisher ist vom Datentyp sysname und hat den Standardwert NULL.

    HinweisHinweis

    Sie sollten diesen Parameter nicht für einen SQL Server-Verleger festlegen.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_addlogreader_agent wird für die Transaktionsreplikation verwendet.

Sie müssen sp_addlogreader_agent ausführen, um einen Protokolllese-Agent hinzuzufügen, wenn Sie eine Datenbank, die für die Replikation aktiviert ist, auf diese Version von SQL Server aktualisiert haben, bevor eine Veröffentlichung erstellt wurde, die diese Datenbank verwendet.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner können sp_addlogreader_agent ausführen.

Beispiel

-- 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'AdventureWorks2008R2'; 
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