Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Managed Instance
Cria uma entrada na tabela sys.servers (se não houver uma), marca a entrada do servidor como um Distribuidor e armazena informações de propriedade. Este procedimento armazenado é executado no Distribuidor na master base de dados para registar e marcar o servidor como distribuidor. No caso de um distribuidor remoto, ele também é executado no Publisher a master partir do banco de dados para registrar o distribuidor remoto.
Transact-SQL convenções de sintaxe
Sintaxe
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'distribuidor'
O nome do servidor de distribuição.
@distributor é sysname, sem padrão. Este parâmetro só é usado se estiver configurando um Distribuidor remoto. Ele adiciona entradas para as propriedades do Distribuidor na msdb..MSdistributor tabela.
Observação
O nome do servidor pode ser especificado como <Hostname>,<PortNumber> para uma instância padrão ou <Hostname>\<InstanceName>,<PortNumber> para uma instância nomeada. Especifique o número da porta para sua conexão quando o SQL Server for implantado no Linux ou no Windows com uma porta personalizada e o serviço do navegador estiver desabilitado. O uso de números de porta personalizados para distribuidor remoto se aplica ao SQL Server 2019 (15.x) e versões posteriores.
@heartbeat_interval [ = ] heartbeat_interval
O número máximo de minutos que um agente pode passar sem registrar uma mensagem de progresso.
@heartbeat_interval é int, com um padrão de 10 minutos. É criado um trabalho do SQL Server Agent que é executado nesse intervalo para verificar o status dos agentes de replicação em execução.
@password [ = ] N'senha'
A senha do login distributor_admin .
@password é sysname, com um padrão de NULL. Se a senha for NULL ou uma cadeia de caracteres vazia, @password será redefinida para um valor aleatório. A senha deve ser configurada quando o primeiro distribuidor remoto é adicionado.
distributor_admin login e @password são armazenados para entrada de servidor vinculado usada para uma conexão RPC de distribuidor , incluindo conexões locais. Se o distribuidor for local, a senha para distributor_admin será definida como um novo valor. Para Publicadores com um Distribuidor remoto, o mesmo valor para @password deve ser especificado ao executar sp_adddistributor no Editor e no Distribuidor.
sp_changedistributor_password pode ser utilizado para alterar a palavra-passe do Distribuidor.
Importante
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução. Se você precisar armazenar credenciais em um arquivo de script, deverá proteger o arquivo para impedir o acesso não autorizado.
@from_scripting [ = ] from_scripting
@from_scripting é bit, com um padrão de 0. Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
@encrypt_distributor_connection [ = ] N'encrypt_distributor_connection'
Aplica-se a: SQL Server 2025 (17.x) e versões posteriores.
Determina se a conexão do servidor vinculado interno do editor ao distribuidor é criptografada. Os valores são mapeados para a propriedade do Encrypt provedor OLE DB.
@encrypt_distributor_connection é nvarchar(10), e não pode ser NULL.
@encrypt_distributor_connection pode ser um dos seguintes valores:
-
mandatory(padrão com o provedor Microsoft OLE DB 19) -
nooufalse(padrão com o provedor Microsoft OLE DB 18) -
trueouyes optionalstrict
@trust_distributor_certificate [ = ] N'trust_distributor_certificate'
Aplica-se a: SQL Server 2025 (17.x) e versões posteriores.
Indica se o certificado TLS do distribuidor deve ser confiável sem validação. O valor é mapeado para a propriedade do TrustServerCertificate provedor OLE DB e normalmente é usado em conjunto com a Mandatory configuração de criptografia ao usar certificados autoassinados.
@trust_distributor_certificate é nvarchar(5), e não pode ser NULL.
@trust_distributor_certificate pode ser um dos seguintes valores:
-
no(padrão) yes
Observação
Os padrões seguros pertencem ao provedor OLEDB subjacente 19, que aumenta a segurança. A opção para substituir o padrão é menos segura do que configurar sua instância para usar um certificado confiável. Depois de substituir o padrão, você tem a opção de configurar o SQL Server para usar um certificado e, em seguida, usar o procedimento armazenado sp_changedistributor_property para definir a trust_distributor_certificate=no propriedade de volta para o padrão seguro.
@host_name_in_distributor_certificate [ = ] N'host_name_in_distributor_certificate'
Aplica-se a: SQL Server 2025 (17.x) e versões posteriores.
Especifica o nome do host do certificado do Distribuidor, quando ele é diferente do nome do Distribuidor, como quando o endereço IP ou o alias DNS é usado como o nome do Distribuidor. Deixe o parâmetro @host_name_in_distributor_certificate vazio se o nome do host no certificado corresponder ao nome do distribuidor.
@host_name_in_distributor_certificate é nvarchar(255) de qualquer valor de cadeia de caracteres, com um padrão de NULL.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Observações
sp_adddistributor é usado na replicação de snapshot, replicação transacional e replicação de mesclagem.
Observação
Para topologias de replicação com um distribuidor remoto:
Examples
-- 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
Configurar o distribuidor para confiar no certificado autoassinado
Para substituir o padrão seguro do provedor OLEDB 19 e definir trust_distributor_certificate=yes para que o distribuidor confie no certificado autoassinado, use o seguinte exemplo:
EXECUTE sys.sp_adddistributor @trust_distributor_certificate = 'yes';
Observação
Os padrões seguros pertencem ao provedor OLEDB subjacente 19, que aumenta a segurança. A opção para substituir o padrão é menos segura do que configurar sua instância para usar um certificado confiável. Depois de substituir o padrão, você tem a opção de configurar o SQL Server para usar um certificado e, em seguida, usar o procedimento armazenado sp_changedistributor_property para definir a trust_distributor_certificate=no propriedade de volta para o padrão seguro.
Para mais informações, consulte a variação do distribuidor remoto no SQL Server 2025.
Permissions
Somente membros da função de servidor fixa sysadmin podem executar sp_adddistributoro .