sp_adddistpublisher (Transact-SQL)
Configure un serveur de publication pour qu'il utilise une base de données de distribution spécifique. Cette procédure stockée est exécutée sur n'importe quelle base de données du serveur de distribution. Notez que les procédures stockées sp_adddistributor (Transact-SQL) et sp_adddistributiondb (Transact-SQL) doivent avoir été exécutées préalablement à l'utilisation de celle-ci.
Syntaxe
sp_adddistpublisher [ @publisher= ] 'publisher'
, [ @distribution_db= ] 'distribution_db'
[ , [ @security_mode= ] security_mode ]
[ , [ @login= ] 'login' ]
[ , [ @password= ] 'password' ]
[ , [ @working_directory= ] 'working_directory' ]
[ , [ @trusted= ] 'trusted' ]
[ , [ @encrypted_password= ] encrypted_password ]
[ , [ @thirdparty_flag = ] thirdparty_flag ]
[ , [ @publisher_type = ] 'publisher_type' ]
Arguments
[ @publisher=] 'publisher'
Nom du serveur de publication. L'argument publisher est du type sysname, sans valeur par défaut.[ @distribution_db=] 'distribution_db'
Nom de la base de données de distribution. L'argument distribution_db est du type sysname, sans valeur par défaut. Ce paramètre est utilisé par les agents de réplication pour se connecter au serveur de publication.[ @security_mode=] security_mode
Représente le mode de sécurité implémenté. Ce paramètre est uniquement utilisé par les agents de réplication afin de se connecter au serveur de publication pour les abonnements de mise à jour en attente ou à un serveur de publication non SQL Server. security_mode est du type int, et peut prendre l'une des valeurs suivantes.Valeur
Description
0
Les Agents de réplication situés sur le serveur de distribution utilisent l'authentification SQL Server pour se connecter au serveur de publication.
1 (valeur par défaut)
Les agents de réplication situés sur le serveur de distribution utilisent l'authentification Windows pour se connecter au serveur de publication.
[ @login=] 'login'
Connexion d'accès. Ce paramètre est obligatoire si security_mode a la valeur 0. L'argument login est du type sysname, avec NULL comme valeur par défaut. Il est utilisé par les agents de réplication pour se connecter au serveur de publication.[ @password=] 'password']
Mot de passe. L'argument password est du type sysname, avec NULL comme valeur par défaut. Il est utilisé par les agents de réplication pour se connecter au serveur de publication.Remarque relative à la sécurité N'utilisez pas de mot de passe vide, mais un mot de passe fort.
[ @working_directory=] 'working_directory'
Nom du répertoire de travail utilisé pour stocker des fichiers de données et de schémas pour la publication. L'argument working_directory est du type nvarchar(255), utilise par défaut le dossier ReplData pour cette instance de SQL Server, par exemple 'C:\Program Files\Microsoft SQL Server\MSSQL\MSSQ.1\ReplData'. Le nom doit être indiqué au format UNC.[ @trusted=] 'trusted'
Ce paramètre a été désapprouvé et n'est fourni qu'à des fins de compatibilité ascendante. trusted est du type nvarchar(5), il génère une erreur s'il n'est pas défini à false.[ @encrypted_password=] encrypted_password
La définition de encrypted_password n'est plus prise en charge. Toute tentative de définition de ce paramètre de type bit à 1 génèrera une erreur.[ @thirdparty_flag =] thirdparty_flag
Indique que le serveur de publication est SQL Server. thirdparty_flag est du type bit, et peut prendre l'une des valeurs suivantes.Valeur
Description
0 (valeur par défaut)
Base de données SQL Server
1
Base de données autre que SQL Server
[ @publisher_type= ] 'publisher_type'
Spécifie le type du serveur de publication lorsque celui-ci n'est pas SQL Server. publisher_type est du type sysname, et peut prendre l'une des valeurs suivantes.Valeur
Description
MSSQLSERVER
(par défaut)
Spécifie un serveur de publication SQL Server.
ORACLE
Spécifie un serveur de publication Oracle standard.
ORACLE GATEWAY
Spécifie un serveur de publication Oracle Gateway.
Pour plus d'informations sur les différences entre un serveur de publication Oracle et un serveur de publication Oracle Gateway, consultez Configuration d'un serveur de publication Oracle.
Valeurs des codes de retournés
0 (succès) ou 1 (échec)
Notes
La procédure sp_adddistpublisher est utilisée lors d'une réplication transactionnelle, de capture instantanée ou de fusion.
Exemple
-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".
-- Install the Distributor and the distribution database.
DECLARE @distributor AS sysname;
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
DECLARE @directory AS nvarchar(500);
DECLARE @publicationDB AS sysname;
-- Specify the Distributor name.
SET @distributor = $(DistPubServer);
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
-- Specify the replication working directory.
SET @directory = N'\\' + $(DistPubServer) + '\repldata';
-- Specify the publication database.
SET @publicationDB = N'AdventureWorks';
-- Install the server MYDISTPUB as a Distributor using the defaults,
-- including autogenerating the distributor password.
USE master
EXEC sp_adddistributor @distributor = @distributor;
-- Create a new distribution database using the defaults, including
-- using Windows Authentication.
USE master
EXEC sp_adddistributiondb @database = @distributionDB,
@security_mode = 1;
GO
-- Create a Publisher and enable AdventureWorks for replication.
-- Add MYDISTPUB as a publisher with MYDISTPUB as a local distributor
-- and use Windows Authentication.
DECLARE @distributionDB AS sysname;
DECLARE @publisher AS sysname;
-- Specify the distribution database.
SET @distributionDB = N'distribution';
-- Specify the Publisher name.
SET @publisher = $(DistPubServer);
USE [distribution]
EXEC sp_adddistpublisher @publisher=@publisher,
@distribution_db=@distributionDB,
@security_mode = 1;
GO
Autorisations
Seuls les membres appartenant au rôle serveur fixe sysadmin peuvent exécuter sp_adddistpublisher.
Voir aussi