Compartilhar via


sp_adddistpublisher (Transact-SQL)

Configura um Publicador para usar um banco de dados de distribuição especificado. Esse procedimento armazenado é executado no Distribuidor em qualquer banco de dados. Observe que os procedimentos armazenados sp_adddistributor (Transact-SQL) e sp_adddistributiondb (Transact-SQL) já deverão ter sido executados antes de usar esse procedimento armazenado.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

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' ]

Argumentos

  • [ @publisher=] 'publisher'
    É o nome do Publicador. publisher é sysname, sem padrão.

  • [ @distribution_db=] 'distribution_db'
    É o nome do banco de dados de distribuição. distributor_db é sysname, sem padrão. Esse parâmetro é usado por agentes de replicação para conexão com o Publicador.

  • [ @security_mode=] security_mode
    É o modo de segurança implementado. Esse parâmetro é usado apenas pelos agentes de replicação para conexão ao Publicador para assinaturas de atualização na fila ou com um Publicador que não seja do SQL Server. security_mode é int, e pode ter um destes valores.

    Valor

    Descrição

    0

    Agentes de replicação no Distribuidor usam a Autenticação do SQL Server para conexão com o Publicador.

    1 (padrão)

    Agentes de replicação no Distribuidor usam a Autenticação do Windows para conexão com o Publicador.

  • [ @login=] 'login'
    É o logon. Esse parâmetro será 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 conexão com o Publicador.

  • [ @password=] 'password']
    É a senha. password é sysname, com um padrão de NULL. Esse parâmetro é usado por agentes de replicação para conexão com o Publicador.

    Observação sobre segurançaObservação sobre segurança

    Não use uma senha em branco. Use uma senha forte.

  • [ @working_directory=] '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 pasta ReplData para essa instância do SQL Server, por exemplo 'C:\Arquivos de Programa\Microsoft SQL Server\MSSQL\MSSQ.1\ReplData'. O nome deve ser especificado no formato UNC.

  • [ @trusted=] 'trusted'
    Esse parâmetro foi substituído e é fornecido apenas para compatibilidade com versões anteriores. trusted é nvarchar (5) e sua definição como qualquer coisa que não seja false resultará em um erro.

  • [ @encrypted_password=] encrypted_password
    Não há mais suporte para a configuração de encrypted_password. Tentar definir esse parâmetro bit como 1 resultará em erro.

  • [ @thirdparty_flag =] thirdparty_flag
    É quando o Publicador é SQL Server. thirdparty_flag é bit, e pode ter um dos seguintes valores.

    Valor

    Descrição

    0 (padrão)

    Banco de dados SQL Server.

    1

    Banco de dados diferente de SQL Server.

  • [ @publisher_type= ] 'publisher_type'
    Especifica o tipo do Publicador quando o Publicador não é SQL Server. publisher_type é sysname, e pode ter um dos valores a seguir.

    Valor

    Descrição

    MSSQLSERVER 

    (padrão)

    Especifica um Editor SQL Server.

    ORACLE

    Especifica um Editor Oracle padrão.

    ORACLE GATEWAY

    Especifica um Editor Oracle Gateway.

    Para obter mais informações sobre as diferenças entre um Publicador Oracle e um Publicador Oracle Gateway , consulte Configurar um publicador Oracle.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_adddistpublisher é usado por replicação de instantâneo e replicação transacional e replicação de mesclagem.

Exemplo

-- 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'AdventureWorks2012'; 

-- 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 AdventureWorks2012 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 

Permissões

Somente membros da função de servidor fixa sysadmin podem executar sp_adddistpublisher.

Consulte também

Referência

sp_changedistpublisher (Transact-SQL)

sp_dropdistpublisher (Transact-SQL)

sp_helpdistpublisher (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)

Conceitos

Configurar a publicação e a distribuição

Configurar a distribuição