如何允许非管理员使用复制监视器(复制 Transact-SQL 编程)

只有 sysadmin 固定服务器角色、db_owner 固定数据库角色和分发数据库的 replmonitor 固定数据库角色中具有监视复制拓扑的能力。 可以使用系统存储过程以编程方式将用户添加到 replmonitor 固定数据库角色。

将用户添加到 replmonitor 固定数据库角色

  1. 在分发服务器的分发数据库中,执行sp_helpuser (Transact-SQL)。 如果未在结果集中的 UserName 中列出此用户,则必须使用 CREATE USER (Transact-SQL) 语句为用户授予分发数据库的访问权限。

  2. 在分发服务器的分发数据库中,执行 sp_helprolemember (Transact-SQL),并为 @rolename 参数指定 replmonitor 值。 如果在结果集中的 MemberName 中列出此用户,则此用户已属于此角色。

  3. 如果此用户不属于 replmonitor 角色,则在分发服务器的分发数据库中执行 sp_addrolemember (Transact-SQL)。 为 @rolename 指定值 replmonitor 并为 @membername 指定要添加的数据库用户名称或 Microsoft Windows 登录名。

从 replmonitor 固定数据库角色中删除用户

  1. 若要验证用户是否属于 replmonitor 角色,请在分发服务器的分发数据库中执行 sp_helprolemember (Transact-SQL),并为 @rolename 指定 replmonitor 值。 如果在结果集中的 MemberName 中未列出此用户,则此用户当前不属于此角色。

  2. 如果此用户属于 replmonitor 角色,则在分发服务器的分发数据库中执行 sp_droprolemember (Transact-SQL)。 为 @rolename 指定值 replmonitor 并为 @membername 指定要删除的数据库用户名称或 Windows 登录名。