sp_addlogreader_agent (Transact-SQL)
Agrega un Agente de registro del LOG a una base de datos dada. Este procedimiento almacenado se ejecuta en el publicador de la base de datos de publicaciones.
Nota de seguridad |
---|
Al configurar un publicador con un distribuidor remoto, los valores suministrados para todos los parámetros, incluidos job_login y job_password, se envían al distribuidor como texto sin formato. Antes de ejecutar este procedimiento almacenado, debe cifrar la conexión entre el publicador y el distribuidor remoto. Para obtener más información, vea Cifrar conexiones a SQL Server. |
Sintaxis
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'
Es el inicio de sesión de la cuenta de Microsoft Windows en la que se ejecuta el agente. job_login es de tipo nvarchar(257) y su valor predeterminado es NULL. Esta cuenta de Windows siempre se utiliza para conexiones del agente con el distribuidor.Nota
En publicadores que no son de Microsoft SQL Server, el inicio de sesión debe ser el mismo que se especificó en sp_adddistpublisher (Transact-SQL).
[ @job_password= ] 'job_password'
Es la contraseña de la cuenta de Windows en la que se ejecuta el agente. job_password es de tipo sysname y su valor predeterminado es NULL.Nota de seguridad No almacene información de autenticación en archivos de scripts. Para una mayor seguridad, los nombres de inicio de sesión y las contraseñas se deben proporcionar en tiempo de ejecución.
[ @job_name= ] 'job_name'
Es el nombre de un trabajo del agente existente. job_name es de tipo sysname y su valor predeterminado es NULL. Este parámetro sólo se especifica cuando se inicia el agente a partir de un trabajo existente, en lugar de hacerlo con un trabajo recién creado (el valor predeterminado).[ @publisher_security_mode= ] publisher_security_mode
Es el modo de seguridad que utiliza el agente al conectarse al publicador. publisher_security_mode es de tipo smallint y su valor predeterminado es 1. 0 especifica Autenticación de SQL Server y 1 especifica Autenticación de Windows. Se debe especificar el valor 0 para publicadores que no son de SQL Server.[ @publisher_login= ] 'publisher_login'
Es el inicio de sesión utilizado al conectarse al publicador. publisher_login es de tipo sysname y su valor predeterminado es NULL. publisher_login se debe especificar si publisher_security_mode es 0. Si publisher_login es NULL y publisher_security_mode es 1, se utilizará la cuenta de Windows especificada en job_login al conectarse al publicador.[ @publisher_password= ] 'publisher_password'
Es la contraseña que se utiliza al conectarse al publicador. publisher_password es de tipo sysname y su valor predeterminado es NULL.Nota de seguridad No almacene información de autenticación en archivos de scripts. Para una mayor seguridad, los nombres de inicio de sesión y las contraseñas se deben proporcionar en tiempo de ejecución.
[ @publisher= ] 'publisher'
Es el nombre del publicador que no es de SQL Server. publisher es de tipo sysname y su valor predeterminado es NULL.Nota
No debe especificar este parámetro para un publicador de SQL Server.
Valores de código de retorno
0 (correcto) o 1 (error)
Comentarios
sp_addlogreader_agent se utiliza en la replicación transaccional.
Debe ejecutar sp_addlogreader_agent para agregar un Agente de registro del LOG si actualizó una base de datos que se habilitó para replicación en esta versión de SQL Server antes de que se creara una publicación que utilizara la base de datos.
Permisos
Sólo los miembros de la función fija de servidor sysadmin o de la función fija de base de datos db_owner pueden ejecutar sp_addlogreader_agent.
Ejemplo
-- 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