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 sicurezza |
---|
Quando si configura un server di pubblicazione con un server di distribuzione remoto, 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 Abilitazione di connessioni crittografate al Motore di database (Gestione configurazione SQL Server). |
Convenzioni 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 Microsoft SQL Server, deve corrispondere all'account di accesso specificato in sp_adddistpublisher (Transact-SQL).
[ @job_password= ] 'job_password'
Password dell'account di Windows utilizzato per l'esecuzione dell'agente. job_password è di tipo sysname e il valore predefinito è NULL.Nota sulla sicurezza Non archiviare informazioni di autenticazione in file script. Per una sicurezza 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 sicurezza utilizzata dall'agente per la connessione al server di pubblicazione. publisher_security_mode è smallint, con 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. publisher_login deve essere specificato quando 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 sicurezza Non archiviare informazioni di autenticazione in file script. Per una sicurezza 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
Vedere anche
Riferimento
sp_addpublication (Transact-SQL)
sp_changelogreader_agent (Transact-SQL)
Stored procedure per la replica (Transact-SQL)