Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Azure SQL Managed Instance
Adiciona um agente Log Reader para uma determinada base de dados. Este procedimento armazenado é executado no Publisher no banco de dados de publicação.
Importante
Ao configurar um Publisher com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, incluindo @job_login e @job_password, são enviados ao Distribuidor em texto simples. Deve encriptar a ligação entre o Publisher e o seu Distribuidor remoto antes de executar este procedimento armazenado. Para obter mais informações, consulte Configurar o Mecanismo de Banco de Dados do SQL Server para criptografar conexões.
Transact-SQL convenções de sintaxe
Syntax
sys.sp_addlogreader_agent
[ [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @job_security_mode = ] job_security_mode ]
[ ; ]
Arguments
[ @job_login = ] N'job_login'
O login da conta Windows com a qual o agente corre.
@job_login é nvarchar(257), com um padrão de NULL. Esta conta do Windows é sempre usada para ligações de agentes ao Distribuidor. No Azure SQL Managed Instance, use uma conta SQL Server.
Note
Para editores não SQL Server, este deve ser o mesmo login especificado em sp_adddistpublisher.
[ @job_password = ] N'job_password'
A palavra-passe da conta Windows com a qual o agente corre.
@job_password é sysname, com um padrão de NULL.
Importante
Não guarde a informação de autenticação em ficheiros de script. Para a melhor segurança, os nomes de login e palavras-passe devem ser fornecidos em tempo de execução.
[ @job_name = ] N'job_name'
O nome de um agente já existente.
@job_name é sysname, com o padrão de NULL. Este parâmetro só é especificado quando o agente é iniciado usando um trabalho existente em vez de um trabalho recém-criado (o padrão).
[ @publisher_security_mode = ] publisher_security_mode
Note
Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).
O modo de segurança usado pelo agente ao ligar-se ao Publisher.
@publisher_security_mode é smallint, com um padrão de 1. Um valor de 0 deve ser especificado para editores que não sejam SQL Server. Os seguintes valores definem o modo de segurança:
-
0especifica autenticação SQL Server. -
1especifica autenticação do Windows. -
2especifica a autenticação por palavra-passe Microsoft Entra a partir do SQL Server 2022 (16.x) 6. -
3especifica a autenticação integrada Microsoft Entra a partir do SQL Server 2022 (16.x) 6. -
4especifica a autenticação do token Microsoft Entra a partir do SQL Server 2022 (16.x) 6.
[ @publisher_login = ] N'publisher_login'
O login usado ao ligar-se ao Publisher.
@publisher_login é sysname, com um padrão de NULL.
@publisher_login deve ser especificado quando @publisher_security_mode é 0. Se @publisher_login for NULL e @publisher_security_mode for 1, então a conta Windows especificada em @job_login é usada ao ligar à Publisher.
[ @publisher_password = ] N'publisher_password'
A palavra-passe usada ao ligar-se ao Publisher.
@publisher_password é sysname, com um padrão de NULL.
Importante
Não guarde a informação de autenticação em ficheiros de script. Para a melhor segurança, os nomes de login e palavras-passe devem ser fornecidos em tempo de execução.
@publisher [ = ] N'editor'
O nome do não-SQL Server Publisher.
@publisher é sysname, com um padrão de NULL.
Note
Não deves especificar este parâmetro para um SQL Server Publisher.
[ @job_security_mode = ] job_security_mode
Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Remarks
sp_addlogreader_agent é usado na replicação transacional.
Deve executar sp_addlogreader_agent para adicionar um agente Log Reader se atualizou uma base de dados que estava ativada para replicação para esta versão do SQL Server antes de ser criada uma publicação que utilizasse a base de dados.
Permissions
Apenas os membros do papel de servidor fixo de sysadmin ou do papel de base de dados fixa db_owner podem executar sp_addlogreader_agent.
Examples
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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".
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksProductTran';
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login);
-- This should be passed at runtime.
SET @password = $(Password);
-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create a new transactional publication with the required properties.
EXEC sp_addpublication
@publication = @publication,
@status = N'active',
@allow_push = N'true',
@allow_pull = N'true',
@independent_agent = N'true';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
GO