sp_changelogreader_agent (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例

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

重要

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

语法

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

参数

[ @job_login = ] N'job_login'

运行代理的帐户的登录名。 @job_loginnvarchar(257),默认值为 NULL. 在Azure SQL 托管实例,使用 SQL Server 帐户。

注意

对于非 SQL Server 发布者,无法对此进行更改。

[ @job_password = ] N'job_password'

运行代理的帐户的密码。 @job_password为 sysname,默认值为 NULL.

重要

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

[ @publisher_security_mode = ] publisher_security_mode

连接到发布服务器时代理使用的安全模式。 @publisher_security_mode为 smallint,默认值为 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 = ] N'publisher_login'

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

[ @publisher_password = ] N'publisher_password'

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

重要

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

[ @publisher = ] N'publisher'

发布服务器的名称。 @publisher为 sysname,默认值为 NULL. 仅非 SQL Server 发布服务器支持此参数。

返回代码值

0(成功)或 1(失败)。

注解

sp_changelogreader_agent 用于事务复制。

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

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

权限

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