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ópicoConvenções de 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 só é usado por agentes de replicação para conexão com o Publicador de assinaturas de atualização enfileiradas ou com um Publicador não-SQL Server. security_mode é int, e pode ser um dos valores a seguir.

    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 é necessário se security_mode é 0. logon é 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 preterido e só é fornecido para compatibilidade com versões anteriores. trusted é nvarchar(5), e configurá-lo como qualquer valor diferente de false resultará em 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 ser um dos valores a seguir.

    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 de Publicador quando o Publicador não é SQL Server. publisher_type é sysname e pode ser um dos valores a seguir.

    Valor

    Descrição

    MSSQLSERVER 

    (padrão)

    Especifica um Publicador SQL Server.

    ORACLE

    Especifica um Publicador padrão Oracle.

    ORACLE GATEWAY

    Especifica um Publicador Oracle Gateway.

    Para obter mais informações sobre as diferenças entre um Publicador Oracle e um Publicador Oracle Gateway , consulte Configurando um Editor 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'AdventureWorks2008R2'; 

-- 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 AdventureWorks2008R2 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.