Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Instância Gerenciada de SQL do Azure
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. Esse procedimento armazenado é executado no Distribuidor no master banco de dados para registrar e marcar o servidor como um distribuidor. No caso de um distribuidor remoto, ele também é executado no Publicador a partir do master banco de dados para registrar o distribuidor remoto.
Convenções de sintaxe de Transact-SQL
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' ]
[ ; ]
Argumentos
@distributor [ = ] N'distribuidor'
O nome do servidor de distribuição.
@distributor é sysname, sem padrão. Esse parâmetro só é usado na configuração de 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 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 prosseguir sem registrar uma mensagem de progresso.
@heartbeat_interval é int, com um padrão de 10 minutos. Um trabalho do SQL Server Agent é criado e executado nesse intervalo para verificar os status dos agentes de replicação em execução.
@password [ = ] N'senha'
A senha do distributor_admin login.
@password é sysname, com um padrão de NULL. Se a senha for NULL ou uma string 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 do 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 Publicador e no Distribuidor.
sp_changedistributor_password pode ser usado para alterar a senha do Distribuidor.
Importante
Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, você deverá proteger o arquivo para impedir acesso não autorizado.
@from_scripting [ = ] from_scripting
@from_scripting é bit, com um padrão de 0. Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está 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 interna do servidor vinculado do publicador com o 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 19 subjacente, que aprimora a segurança. A opção de 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 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 do código de retorno
0 (sucesso) ou 1 (falha).
Comentários
sp_adddistributor é usado na replicação de instantâneo, replicação transacional e replicação de mesclagem.
Observação
Para topologias de replicação com um distribuidor remoto:
Exemplos
-- 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 19 subjacente, que aprimora a segurança. A opção de 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, revise a mudança de distribuição remota no SQL Server 2025.
Permissões
Somente membros da função de servidor fixa sysadmin podem executar sp_adddistributor.