sp_addlogreader_agent (Transact-SQL)
Ajoute un Agent de lecture du journal pour une base de données. Cette procédure stockée est exécutée sur la base de données de publication du serveur de publication.
Remarque relative à la sécurité |
---|
Lors de la configuration d'un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris job_login et job_password, sont envoyées au serveur de distribution en texte brut. Chiffrez la connexion entre le serveur de publication et son serveur de distribution distant avant d'exécuter la procédure stockée. Pour plus d'informations, consultez Chiffrement des connexions à SQL Server. |
Syntaxe
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' ]
Arguments
[ @job_login= ] 'job_login'
Nom de connexion du compte Microsoft Windows sous lequel l'Agent s'exécute. job_login est de type nvarchar(257), avec NULL comme valeur par défaut. Ce compte Windows est toujours utilisé pour les connexions des Agents au serveur de distribution.Notes
Pour les serveurs de publication non-Microsoft SQL Server, le nom de connexion doit être identique à celui défini dans sp_adddistpublisher (Transact-SQL).
[ @job_password= ] 'job_password'
Mot de passe du compte Windows sous lequel l'Agent s'exécute. job_password est de type sysname, avec NULL comme valeur par défaut.Remarque relative à la sécurité Ne stockez pas les informations d'authentification dans des fichiers de script. Pour une sécurité maximale, les noms de connexion et les mots de passe doivent être fournis au moment de l'exécution.
[ @job_name= ] 'job_name'
Nom d'un travail d'agent existant. job_name est de type sysname, avec NULL comme valeur par défaut. Ce paramètre n'est défini que lorsque l'Agent est démarré avec un travail existant au lieu d'un nouveau travail (la valeur par défaut).[ @publisher_security_mode= ] publisher_security_mode
Mode de sécurité utilisé par l'Agent lors de la connexion au serveur de publication. publisher_security_mode est de type smallint, avec 1 comme valeur par défaut. 0 spécifie l'authentification SQL Server, et 1 l'authentification Windows. La valeur 0 doit être spécifiée pour les serveurs de publication non-SQL Server.[ @publisher_login= ] 'publisher_login'
Nom de connexion utilisé pour se connecter au serveur de publication. publisher_login est de type sysname, avec NULL comme valeur par défaut. L'argument publisher_login doit être spécifié lorsque publisher_security_mode a la valeur 0. Si publisher_login prend la valeur NULL et que publisher_security_modeest défini sur 1, le compte Windows spécifié dans job_login est utilisé lors de la connexion au serveur de publication.[ @publisher_password= ] 'publisher_password'
Mot de passe utilisé pour se connecter au serveur de publication. publisher_password est de type sysname, avec NULL comme valeur par défaut.Remarque relative à la sécurité Ne stockez pas les informations d'authentification dans des fichiers de script. Pour une sécurité maximale, les noms de connexion et les mots de passe doivent être fournis au moment de l'exécution.
[ @publisher = ] 'publisher'
Nom du serveur de publication non-SQL Server. publisher est de type sysname, avec NULL comme valeur par défaut.Notes
Ne spécifiez pas ce paramètre pour un serveur de publication SQL Server.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Notes
sp_addlogreader_agent est utilisé dans la réplication transactionnelle.
Vous devez exécuter sp_addlogreader_agent pour ajouter un Agent de lecture du journal si vous avez mis à niveau une base de données activée pour la réplication vers cette version de SQL Server avant la création d'une publication qui utilisait la base de données.
Autorisations
Seuls les membres du rôle serveur fixe sysadmin ou du rôle de base de données fixe db_owner peuvent exécuter sp_addlogreader_agent.
Exemple
-- 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