Partilhar via


sp_addlogreader_agent (Transact-SQL)

Adiciona um Log Leitor Agent a um determinado banco de dados. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Observação sobre segurançaObservação sobre segurança

Quando um Publicador é configurado com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, inclusive job_login e job_password, são enviados ao Distribuidor como texto sem formatação. Você deve criptografar a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, consulte Criptografando conexões com o SQL Server.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ [ @job_login= ] 'job_login'
    É o logon para a conta do Microsoft Windows na qual o agente é executado. job_login é nvarchar(257), com um valor padrão de NULL. Essa conta do Windows sempre é usada para conexões de agente com o Distribuidor.

    ObservaçãoObservação

    Para Publicadores não-MicrosoftSQL Server esse deve ser o mesmo logon especificado em sp_adddistpublisher (Transact-SQL).

  • [ [ @job_password= ] 'job_password'
    É a senha para a conta do Windows na qual o agente é executado. job_password é sysname, com um valor padrão NULL.

    Observação sobre segurançaObservação sobre segurança

    Não armazene informações de autenticação em arquivos de script. Para melhor segurança, nomes de logon e senhas devem ser fornecidos em tempo de execução.

  • [ [ @job_name= ] 'job_name'
    É o nome de um trabalho de agente existente. job_name é sysname com um valor padrão NULL. Esse parâmetro só é especificado quando o agente é iniciado usando um trabalho existente em vez de um trabalho recém-criado (o padrão).

  • [ [ @publisher_security_mode= ] publisher_security_mode
    É o modo de segurança usado pelo agente ao se conectar ao Publicador. publisher_security_mode é smallint, com um padrão de 1. 0 especifica Autenticação do SQL Server e 1 especifica Autenticação do Windows. Um valor de 0 deve ser especificado para Publicadores não-SQL Server.

  • [ [ @publisher_login= ] 'publisher_login'
    É o logon usado na conexão com o Publicador. publisher_login é sysname, com um padrão de NULL. publisher_login deve ser especificado quando publisher_security_mode é 0. Se publisher_login for NULL e publisher_security_mode for 1, então a conta do Windows especificada em job_login será usada na conexão com o Publicador.

  • [ [ @publisher_password= ] 'publisher_password'
    É a senha usada na conexão com o Publicador. publisher_password é sysname, com um padrão de NULL.

    Observação sobre segurançaObservação sobre segurança

    Não armazene informações de autenticação em arquivos de script. Para melhor segurança, nomes de logon e senhas devem ser fornecidos em tempo de execução.

  • [ [ @publisher= ] 'publisher'
    É o nome do Publicador não-SQL Server. publisher é sysname, com um padrão de NULL.

    ObservaçãoObservação

    Esse parâmetro não deve ser especificado para um Editor SQL Server.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addlogreader_agent é usado em replicação transacional.

Você deve executar sp_addlogreader_agent para adicionar um Log Reader Agent se você atualizou um banco de dados que estava habilitado para replicação para esta versão do SQL Server antes que uma publicação que usou o banco de dados seja criada.

Permissões

Somente membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_addlogreader_agent.

Exemplo

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