Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Hiermee maakt u een vermelding in de tabel sys.servers (als er nog geen tabel is), markeert u de serververmelding als distributeur en slaat u eigenschapsgegevens op. Deze opgeslagen procedure wordt uitgevoerd bij de Distributeur in de master database om de server te registreren en te markeren als distributeur. In het geval van een externe distributeur wordt deze ook uitgevoerd bij Publisher vanuit de master database om de externe distributeur te registreren.
Transact-SQL syntaxis-conventies
Syntaxis
sp_adddistributor
[ @distributor = ] N'distributor'
[ , [ @heartbeat_interval = ] heartbeat_interval ]
[ , [ @password = ] N'password' ]
[ , [ @from_scripting = ] from_scripting ]
[ , [ @encrypt_distributor_connection = ] N'encrypt_distributor_connection' ]
[ , [ @trust_distributor_certificate = ] N'trust_distributor_certificate' ]
[ , [ @host_name_in_distributor_certificate = ] N'host_name_in_distributor_certificate' ]
[ ; ]
Arguments
[ @distributor = ] N'distributeur'
De naam van de distributieserver.
@distributor is sysname, zonder standaardinstelling. Deze parameter wordt alleen gebruikt als u een externe distributeur instelt. Hiermee worden vermeldingen toegevoegd voor de eigenschappen Distributeur in de msdb..MSdistributor tabel.
Opmerking
De servernaam kan worden opgegeven als <Hostname>,<PortNumber> voor een standaardexemplaren of <Hostname>\<InstanceName>,<PortNumber> voor een benoemd exemplaar. Geef het poortnummer voor uw verbinding op wanneer SQL Server is geïmplementeerd in Linux of Windows met een aangepaste poort en de browserservice is uitgeschakeld. Het gebruik van aangepaste poortnummers voor externe distributeur is van toepassing op SQL Server 2019 (15.x) en latere versies.
[ @heartbeat_interval = ] heartbeat_interval
Het maximum aantal minuten dat een agent kan gaan zonder een voortgangsbericht te registreren.
@heartbeat_interval is int, met een standaardwaarde van 10 minuten. Er wordt een SQL Server Agent-taak gemaakt die op dit interval wordt uitgevoerd om de status van de actieve replicatieagents te controleren.
[ @password = ] N'wachtwoord'
Het wachtwoord van de distributor_admin-aanmelding .
@password is sysname, met een standaardwaarde van NULL. Als het wachtwoord of een lege tekenreeks is NULL , wordt @password opnieuw ingesteld op een willekeurige waarde. Het wachtwoord moet worden geconfigureerd wanneer de eerste externe distributeur wordt toegevoegd.
distributor_admin aanmelding en @password worden opgeslagen voor gekoppelde serververmelding die wordt gebruikt voor een RPC-verbinding met een distributeur , inclusief lokale verbindingen. Als de distributeur lokaal is, wordt het wachtwoord voor distributor_admin ingesteld op een nieuwe waarde. Voor uitgevers met een externe distributeur moet dezelfde waarde voor @password worden opgegeven wanneer deze wordt uitgevoerd sp_adddistributor bij zowel publisher als distributeur.
sp_changedistributor_password kan worden gebruikt om het wachtwoord van de distributeur te wijzigen.
Belangrijk
Indien mogelijk vraagt u gebruikers om beveiligingsreferenties in te voeren tijdens runtime. Als u referenties in een scriptbestand moet opslaan, moet u het bestand beveiligen om onbevoegde toegang te voorkomen.
[ @from_scripting = ] from_scripting
@from_scripting is bit, met een standaardwaarde van 0. Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
[ @encrypt_distributor_connection = ] N'encrypt_distributor_connection'
Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies.
Bepaalt of de interne gekoppelde serververbinding van de uitgever naar de distributeur is versleuteld. De waarden worden toegewezen aan de eigenschap van Encrypt de OLE DB-provider.
@encrypt_distributor_connection is nvarchar(10), en kan dat niet zijn NULL.
@encrypt_distributor_connection kan een van de volgende waarden zijn:
-
mandatory(standaard met Microsoft OLE DB-provider 19) -
nooffalse(standaard met Microsoft OLE DB-provider 18) -
trueofyes optionalstrict
[ @trust_distributor_certificate = ] N'trust_distributor_certificate'
Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies.
Geeft aan of het TLS-certificaat van de distributeur zonder validatie moet worden vertrouwd. De waarde wordt toegewezen aan de eigenschap van TrustServerCertificate de OLE DB-provider en wordt meestal gebruikt in combinatie met de Mandatory versleutelingsinstelling bij het gebruik van zelfondertekende certificaten.
@trust_distributor_certificate is nvarchar(5), en kan dat niet zijn NULL.
@trust_distributor_certificate kan een van de volgende waarden zijn:
-
no(standaard) yes
Opmerking
Veilige standaardinstellingen hebben betrekking op de onderliggende OLEDB-provider 19, waardoor de beveiliging wordt verbeterd. De optie voor het overschrijven van de standaardwaarde is minder veilig dan het configureren van uw exemplaar voor het gebruik van een vertrouwd certificaat. Nadat u de standaardwaarde hebt overschreven, kunt u SQL Server configureren voor het gebruik van een certificaat en vervolgens de sp_changedistributor_property opgeslagen procedure gebruiken om de trust_distributor_certificate=no eigenschap weer in te stellen op de beveiligde standaardwaarde.
[ @host_name_in_distributor_certificate = ] N'host_name_in_distributor_certificate'
Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies.
Hiermee geeft u de hostnaam van het certificaat van de distributeur, wanneer deze verschilt van de naam van de distributeur, zoals wanneer het IP-adres of de DNS-alias wordt gebruikt als de naam van de distributeur. Laat de parameter @host_name_in_distributor_certificate leeg als de hostnaam in het certificaat overeenkomt met de naam van de distributeur.
@host_name_in_distributor_certificate is nvarchar(255) van een tekenreekswaarde, met een standaardwaarde van NULL.
Codewaarden retourneren
0 (geslaagd) of 1 (mislukt).
Opmerkingen
sp_adddistributor wordt gebruikt in momentopnamereplicatie, transactionele replicatie en samenvoegingsreplicatie.
Opmerking
Voor replicatietopologieën met een externe distributeur:
Voorbeelden
-- 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'AdventureWorks2022';
-- 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 AdventureWorks2022 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
Distributeur configureren om het zelfondertekende certificaat te vertrouwen
Gebruik het volgende voorbeeld om de beveiligde standaardwaarde van de OLEDB 19-provider te overschrijven en zo in te stellen trust_distributor_certificate=yes dat de distributeur het zelfondertekende certificaat vertrouwt:
EXECUTE sys.sp_adddistributor @trust_distributor_certificate = 'yes';
Opmerking
Veilige standaardinstellingen hebben betrekking op de onderliggende OLEDB-provider 19, waardoor de beveiliging wordt verbeterd. De optie voor het overschrijven van de standaardwaarde is minder veilig dan het configureren van uw exemplaar voor het gebruik van een vertrouwd certificaat. Nadat u de standaardwaarde hebt overschreven, kunt u SQL Server configureren voor het gebruik van een certificaat en vervolgens de sp_changedistributor_property opgeslagen procedure gebruiken om de trust_distributor_certificate=no eigenschap weer in te stellen op de beveiligde standaardwaarde.
Raadpleeg voor meer informatie de belangrijke wijziging voor externe distributeur in SQL Server 2025 Preview.
Permissions
Alleen leden van de vaste serverrol sysadmin kunnen worden uitgevoerd sp_adddistributor.