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
Configura um Publisher para usar um banco de dados de distribuição especificado. Este procedimento armazenado é executado no Distribuidor em qualquer base de dados. Os procedimentos armazenados sp_adddistributor e sp_adddistributiondb devem ter sido executados antes de usar este procedimento armazenado.
Transact-SQL convenções de sintaxe
Sintaxe
sp_adddistpublisher
[ @publisher = ] N'publisher'
, [ @distribution_db = ] N'distribution_db'
[ , [ @security_mode = ] security_mode ]
[ , [ @login = ] N'login' ]
[ , [ @password = ] N'password' ]
[ , [ @working_directory = ] N'working_directory' ]
[ , [ @trusted = ] N'trusted' ]
[ , [ @encrypted_password = ] encrypted_password ]
[ , [ @thirdparty_flag = ] thirdparty_flag ]
[ , [ @publisher_type = ] N'publisher_type' ]
[ , [ @storage_connection_string = ] N'storage_connection_string' ]
[ ; ]
Arguments
@publisher [ = ] N'editor'
O nome do editor. @publisher é sysname, sem padrão.
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.
@distribution_db [ = ] N'distribution_db'
O nome do banco de dados de distribuição. @distribution_db é sysname, sem padrão. Esse parâmetro é usado por agentes de replicação para se conectar ao Publicador.
@security_mode [ = ] security_mode
O modo de segurança implementado. Esse parâmetro só é usado por agentes de replicação para se conectar ao Publicador para assinaturas de atualização em fila ou com um Editor que não seja do SQL Server. @security_mode é int, e pode ser um desses valores.
| Valor | Description |
|---|---|
0 |
Os agentes de replicação no Distribuidor usam a Autenticação do SQL Server para se conectar ao Editor. |
1 (padrão) |
Os agentes de replicação no Distribuidor usam a Autenticação do Windows para se conectar ao Editor. |
@login [ = ] N'login'
O login. Este parâmetro é necessário se security_mode for 0.
@login é sysname, com um padrão de NULL. Esse parâmetro é usado por agentes de replicação para se conectar ao Publicador.
@password [ = ] N'senha'
A senha.
@password é sysname, com um padrão de NULL. Esse parâmetro é usado por agentes de replicação para se conectar ao Publicador.
Importante
Não utilize uma palavra-passe em branco. Use uma senha forte.
@working_directory [ = ] N'working_directory'
O nome do diretório de trabalho usado para armazenar dados e arquivos de esquema para a publicação.
@working_directory é nvarchar(255) e assume como padrão a ReplData pasta desta instância do SQL Server. Por exemplo, C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL.1\ReplData. O nome deve ser especificado no formato UNC.
Para o Banco de Dados SQL do Azure, use \\<storage_account>.file.core.windows.net\<share>.
@trusted [ = ] N'confiável'
@trusted foi preterido e é fornecido apenas para compatibilidade com versões anteriores.
@trusted é nvarchar(5), com um padrão de false. Definir esse parâmetro como qualquer coisa, menos false resulta em um erro.
@encrypted_password [ = ] encrypted_password
Não há mais suporte para a configuração desse parâmetro.
@encrypted_password é bit, com um padrão de 0. Definir esse parâmetro para 1 resulta em um erro.
@thirdparty_flag [ = ] thirdparty_flag
Especifica quando o Publicador é o SQL Server. @thirdparty_flag é bit e pode ser um dos seguintes valores.
| Valor | Description |
|---|---|
0 (padrão) |
Banco de dados SQL Server. |
1 |
Banco de dados diferente do SQL Server. |
@publisher_type [ = ] N'publisher_type'
Especifica o tipo de Publisher quando o Publisher não é SQL Server. @publisher_type é sysname e pode ser um dos seguintes valores.
| Valor | Description |
|---|---|
MSSQLSERVER (padrão) |
Especifica um Editor do SQL Server. |
ORACLE |
Especifica um Oracle Publisher padrão. |
ORACLE GATEWAY |
Especifica um editor do Oracle Gateway. |
Para obter mais informações sobre as diferenças entre um Oracle Publisher e um Oracle Gateway Publisher, consulte Configurar um Oracle Publisher.
@storage_connection_string [ = ] N'storage_connection_string'
Necessário para o Banco de Dados SQL do Azure.
@storage_connection_string é nvarchar(255), com um padrão de NULL. Use a chave de acesso do portal do Azure, em Configurações de Armazenamento>.
Observação
Os bancos de dados de publicadores e distribuidores no Banco de Dados SQL do Azure exigem a Instância Gerenciada do SQL. Para obter mais informações, consulte Replicação para o Banco de Dados SQL do Azure.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Observações
sp_adddistpublisher é usado pela replicação de snapshot, replicação transacional e replicação de mesclagem.
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
Permissions
Somente membros da função de servidor fixa sysadmin podem executar sp_adddistpublishero .