sp_changelogreader_agent (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

更改日志读取器代理的安全属性。 此存储过程在发布服务器上对发布数据库执行。

重要

使用远程分发服务器配置发布服务器时,为所有参数提供的值(包括 job_loginjob_password)都会以纯文本方式发送到该分发服务器。 在执行此存储过程之前,应该对发布服务器及其远程分发服务器之间的连接进行加密。 有关详细信息,请参阅启用数据库引擎的加密连接(SQL Server 配置管理器)

语法

  
sp_changelogreader_agent [ [ @job_login = ] 'job_login' ]  
    [ , [ @job_password = ] 'job_password' ]  
    [ , [ @publisher_security_mode = ] publisher_security_mode ]  
    [ , [ @publisher_login = ] 'publisher_login' ]  
    [ , [ @publisher_password = ] 'publisher_password' ]   
    [ , [ @publisher = ] 'publisher' ]  

参数

[ @job_login = ] 'job_login' 代理所依据的帐户的登录名。 job_login为 nvarchar(257),默认值为 NULL。 在Azure SQL 托管实例,使用 SQL Server 帐户。 对于非 Microsoft SQL Server 发布者,无法对此进行更改。

[ @job_password = ] 'job_password' 代理所依据的帐户的密码。 job_passwordsysname,默认值为 NULL。

重要

如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。

[ @publisher_security_mode = ] publisher_security_mode

注意

Microsoft Entra ID 以前称为 Azure Active Directory(Azure AD)。

连接到发布服务器时代理所使用的安全模式。 publisher_security_modesmallint,默认值为 NULL。 以下值定义安全模式:

  • 0 指定 SQL Server 身份验证。
  • 1指定Windows 身份验证。
  • 2 指定从 SQL Server 2022 (16.x) CU 6 开始的 Microsoft Entra 密码身份验证。
  • 3 指定从 SQL Server 2022 (16.x) CU 6 开始的 Microsoft Entra 集成身份验证。
  • 4 指定从 SQL Server 2022 (16.x) CU 6 开始的 Microsoft Entra 令牌身份验证。

重要

请尽可能使用 Windows 身份验证。

[ @publisher_login = ] 'publisher_login' 连接到发布服务器时使用的登录名。 publisher_loginsysname,默认值为 NULL。 当publisher_security_mode为 0,必须指定publisher_login。 如果publisher_login为 NULL 且publisher_security_mode1,则在连接到发布服务器时使用job_login中指定的 Windows 帐户。

[ @publisher_password = ] 'publisher_password' 连接到发布服务器时使用的密码。 publisher_password为 sysname,默认值为 NULL。

重要

不要使用空密码。 请使用强密码。 如果可能,请在运行时提示用户输入安全凭据。 如果必须在脚本文件中存储凭据,则必须保护文件以防止未经授权的访问。

[ @publisher = ] 'publisher' 发布服务器的名称。 publishersysname,默认值为 NULL。 仅非 SQL Server 发布服务器支持此参数。

返回代码值

0 (成功) 或 1 (失败)

注解

事务副本 (replica)中使用sp_changelogreader_agent

sp_changelogreader_agent 用于更改运行日志读取器代理的 Windows 帐户。 可以更改现有 Windows 登录名的密码,或提供新的 Windows 登录名和密码。

更改代理登录名或密码之后,必须先停止并重新启动代理,然后更改才能生效。

权限

只有 sysadmin 固定服务器角色的成员或db_owner固定数据库角色的成员才能执行sp_changelogreader_agent

另请参阅

查看和修改复制安全设置
sp_helplogreader_agent (Transact-SQL)
sp_addlogreader_agent (Transact-SQL)