Compartilhar via


sp_attachsubscription (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure

Anexa um banco de dados de assinatura existente a qualquer Assinante. Esse procedimento armazenado é executado no novo Assinante no master banco de dados.

Importante

Esse recurso é preterido e será removido em uma versão futura. Esse recurso não deve ser usado em novos trabalhos de desenvolvimento. Para publicações de mesclagem, que são particionadas usando filtros com parâmetros, recomendamos o uso de novos recursos de instantâneos particionados, que simplificam a inicialização de um grande número de assinaturas. Para obter mais informações, consulte Criar um instantâneo para uma publicação de mesclagem com filtros com parâmetros. Para publicações que não são particionadas, você pode inicializar uma assinatura com um backup. Para obter mais informações, consulte Initialize a Transactional Subscription Without a Snapshot.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_attachsubscription
    [ @dbname = ] N'dbname'
    , [ @filename = ] N'filename'
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] N'subscriber_login' ]
    [ , [ @subscriber_password = ] N'subscriber_password' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] N'distributor_login' ]
    [ , [ @distributor_password = ] N'distributor_password' ]
    [ , [ @publisher_security_mode = ] publisher_security_mode ]
    [ , [ @publisher_login = ] N'publisher_login' ]
    [ , [ @publisher_password = ] N'publisher_password' ]
    [ , [ @job_login = ] N'job_login' ]
    [ , [ @job_password = ] N'job_password' ]
    [ , [ @db_master_key_password = ] N'db_master_key_password' ]
[ ; ]

Argumentos

@dbname [ = ] N'dbname'

Especifica o nome do banco de dados de assinatura de destino. @dbname é sysname, sem padrão.

@filename [ = ] N'nome do arquivo'

O nome e o local físico do arquivo de dados primário (.mdf). @filename é nvarchar(260), sem padrão.

@subscriber_security_mode [ = ] subscriber_security_mode

O modo de segurança do Assinante a ser usado ao se conectar a um Assinante durante a sincronização. @subscriber_security_mode é int, com um padrão de NULL.

Observação

Autenticação do Windows deve ser usada. Se @subscriber_security_mode não 1 estiver (Autenticação do Windows), você receberá um erro.

@subscriber_login [ = ] N'subscriber_login'

O nome de login do Assinante a ser usado ao se conectar a um Assinante durante a sincronização. @subscriber_login é sysname, com um padrão de NULL.

Observação

Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. Se @subscriber_security_mode não 1 estiver e @subscriber_login for especificado, você receberá um erro.

@subscriber_password [ = ] N'subscriber_password'

A senha do assinante. @subscriber_password é sysname, com um padrão de NULL.

Observação

Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. Se @subscriber_security_mode não 1 for e @subscriber_password for especificado, você receberá um erro.

@distributor_security_mode [ = ] distributor_security_mode

O modo de segurança a ser usado ao se conectar a um Distribuidor durante a sincronização. @distributor_security_mode é int, com um padrão de 1.

  • 0 especifica a autenticação do SQL Server
  • 1 especifica a autenticação do Windows

Quando possível, use a autenticação do Windows.

@distributor_login [ = ] N'distributor_login'

O login do Distribuidor a ser usado ao se conectar a um Distribuidor durante a sincronização. @distributor_login é sysname, com um padrão de NULL. @distributor_login é necessário se @distributor_security_mode estiver definido como 0.

@distributor_password [ = ] N'distributor_password'

A senha do Distribuidor. @distributor_password é sysname, com um padrão de NULL. @distributor_password é necessário se @distributor_security_mode estiver definido como 0. O valor de @distributor_password deve ser menor que 120 caracteres Unicode.

Importante

Não use uma senha em branco. Use uma senha forte. 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.

@publisher_security_mode [ = ] publisher_security_mode

O modo de segurança a ser usado ao se conectar a um Publicador durante a sincronização. @publisher_security_mode é int, com um padrão de 1.

  • Se 0, especifica a autenticação do SQL Server.
  • Se 1, especifica a Autenticação do Windows. Quando possível, use a autenticação do Windows.

@publisher_login [ = ] N'publisher_login'

O logon a ser usado ao se conectar a um Publicador ao sincronizar. @publisher_login é sysname, com um padrão de NULL.

@publisher_password [ = ] N'publisher_password'

A senha usada ao se conectar ao Publicador. @publisher_password é sysname, com um padrão de NULL. O valor de @publisher_password deve ser menor que 120 caracteres Unicode.

Importante

Não use uma senha em branco. Use uma senha forte. 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.

@job_login [ = ] N'job_login'

O logon da conta do Windows sob a qual o agente é executado. @job_login é nvarchar(257), sem padrão. Essa conta do Windows sempre é usada para conexões de agente com o Distribuidor.

@job_password [ = ] N'job_password'

A senha da conta do Windows sob a qual o agente é executado. @job_password é sysname, com um padrão de NULL. O valor de job_password deve ser menor que 120 caracteres Unicode.

Importante

Não use uma senha em branco. Use uma senha forte. 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.

@db_master_key_password [ = ] N'db_master_key_password'

A senha de uma chave mestra de banco de dados (DMK) definida pelo usuário. @db_master_key_password é nvarchar(524), com um padrão de NULL. Se @db_master_key_password não for especificado, uma DMK existente será descartada e recriada.

Importante

Não use uma senha em branco. Use uma senha forte. 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.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

sp_attachsubscription é usado na replicação de instantâneo, replicação transacional e replicação de mesclagem.

Uma assinatura não poderá ser anexada à publicação se o período de retenção da publicação tiver expirado. Se uma assinatura com um período de retenção decorrido for especificada, ocorrerá um erro quando a assinatura for anexada ou sincronizada pela primeira vez. As publicações com um período de retenção de publicação de 0 (nunca expiram) são ignoradas.

Permissões

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